gpt4 book ai didi

bash - 如何重命名 bash 函数?

转载 作者:行者123 更新时间:2023-11-29 08:42:26 25 4
gpt4 key购买 nike

我正在围绕另一个定义 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 - 如何重命名 bash 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com