set
bash
ページのman
の説明から:
-v Print Shell input lines as they are read.
したがって、次のサンプルスクリプトは次のとおりです。
#!/usr/bin/env bash
# setv.sh
set -v
foo=bar
echo $foo
出力を生成します:
foo=bar
echo $foo
bar
どの行がスクリプトからの行であり、どの行がスクリプトからの行の出力であるかを明確に示すために、各行に「+」などの文字列を追加する方法はありますか。上記の例を使用すると、目的の出力は次のようになります。
+ foo=bar
+ echo $foo
bar
そのような出力を取得するには、 $BASH_COMMAND
例:追加
trap 'printf "%s %s\n" + "$BASH_COMMAND" >&2' DEBUG
の代わりに set -x/v
スクリプトの上部にあります。