我有一些冗长的脚本互相调用,我希望它们的输出更具描述性。这个想法是为每个脚本定制echo命令,如下所示。bash:重写echo以在脚本中打印自定义前缀
我的问题是,如何使它不递归,使用echo
?
这是script1.sh
#!/bin/bash
#Original version:
#function echo(){ echo $(basename $0 .sh): $1; }
#Version after fixes
function echo(){ builtin echo -n "$(basename $0 .sh): ">&2; builtin echo [email protected] ; }
echo Info
./script2.sh
这是script2.sh
#!/bin/bash
#Original version:
#function echo(){ echo $(basename $0 .sh): $1; }
#Version after fixes
function echo(){ builtin echo -n "$(basename $0 .sh): ">&2; builtin echo [email protected] ; }
echo Info
exit 0
所以输出应该是:
>./script1.sh
script1: Info
script2: Info
---编辑
奖金:
>./script1.sh 2> /dev/null
Info
Info
'未设置-f echo'应该使用之后你 – IljaBek
也可以把这个函数声明为它自己的文件,而'source'入需要它的脚本。 –