我有一些冗長的腳本互相調用,我希望它們的輸出更具描述性。這個想法是爲每個腳本定製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'入需要它的腳本。 –