覆盖一个shell函数,保留对原始函数的引用
发布时间:2020-12-16 01:24:44 所属栏目:安全 来源:网络整理
导读:是否可以覆盖一个 shell函数并保留对原始函数的引用? f() { echo original; }f() { echo wrapper; ...; }f 其输出应为: wrapperoriginal 这可能是半便携式的吗? 理由:我试图通过用shell函数替换它的一部分来测试我的程序,将其调用记录到一个日志文件中.
是否可以覆盖一个
shell函数并保留对原始函数的引用?
f() { echo original; } f() { echo wrapper; ...; } f 其输出应为: wrapper original 这可能是半便携式的吗? 理由:我试图通过用shell函数替换它的一部分来测试我的程序,将其调用记录到一个日志文件中.只要我只包含命令和内置函数,只要我不介意滥用日志记录,这个工作正常.现在我想让测试套件更容易维护,只需在每个测试中记录有趣的部分. 所以让我们的程序包括 f g h 其中f,g,h都是shell函数,我想跟踪g的执行.
Jens的答案是正确的.只需添加下面的代码完整性.
你可以简单地使用它,如下所示: eval "`declare -f f | sed '1s/.*/_&/'`" #backup old f to _f f(){ echo wrapper _f # pass "$@" to it if required. } 我在这里使用了相同的逻辑:https://stackoverflow.com/a/15758880/793796 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读