我正在开发定义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
我如何做到这一点?