呼び出されたスクリプトの各エコーの前にテキストをどのように追加できますか?

呼び出されたスクリプトの各エコーの前にテキストをどのように追加できますか?

1つは、もう1つを呼び出す2つのスクリプトがあると仮定して、各エコーの前にテキストを追加して呼び出されるコマンドでエコーが発生したことを視覚的に表示するにはどうすればよいですか?

禁煙健康増進協会

#!/usr/bin/env sh
echo - BEGIN
./b.sh # Append "-" to each echo?
echo - END

b.sh

#!/usr/bin/env sh
echo - BEGIN
echo - END

私が望む出力:

- BEGIN
-- BEGIN
-- END
- END

私は届かないb.sh出力をストリーミングする必要があります。

ベストアンサー1

echo前に a が付いた希望のコマンドのテキスト出力である場合、これを関数として-オーバーライドします。echo源泉他のスクリプトには.特別な組み込み関数があるため、その関数を継承します。

#!/usr/bin/env sh
printf '%s\n' '- BEGIN'
echo() {
  printf %s -
  command echo "$@"
}
. ./b.sh
printf '%s\n' '- END'

(とにかく参考にしてください。echo避けるのが一番)

おすすめ記事