如何重命名bash功能?

前端之家收集整理的这篇文章主要介绍了如何重命名bash功能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发定义bash功能的另一个软件包的一些方便的包装器。我想用我自己的相同命名的函数替换他们的bash函数,同时仍然能够从我的内部运行它们的函数。换句话说,我需要重命名它们的功能,或创建一些永久性的别名,当我创建我的相同名称功能时不会被修改

给出一个简单的例子,说明我没有期望工作的天真尝试(实际上并没有):

$ theirfunc() { echo "do their thing"; }
$ _orig_theirfunc() { theirfunc; }
$ theirfunc() { echo "do my thing"; _orig_theirfunc }
$ theirfunc
do my thing
do my thing
do my thing
...

显然我不想无限次递归,我想要:

do my thing
do their thing

我如何做到这一点?

这是一种消除临时文件方法
$ theirfunc() { echo "do their thing"; }
$ eval "$(echo "orig_theirfunc()"; declare -f theirfunc | tail -n +2)"
$ theirfunc() { echo "do my thing"; orig_theirfunc; }
$ theirfunc
do my thing
do their thing

猜你在找的Bash相关文章