次のテストスクリプトがあります。
# test.bash
#----------
{
set -v # Echoes the following 3 parameters
DELAY_MS=2000
SCALING=false
VERBOSE=false
set +v
echo TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST
} 2>&1 | tee test.bash.out
3つの変数を設定し、出力ラインをエコーしますTEST
。以降、set -v
3つの変数設定をミラーリングしたいと思います。標準出力そしてtee
喜んでtest.bash.out
。しかし、Bashコンソールまたはtest.bash.out
。
なぜ現れないのですか?
変数を表示する簡単な方法はありますか?標準出力?
答え1
set -v
(の略set -o verbose
)ソースコードライン印刷読むときそして、シェルが中括弧内の何かを実行する前に、すべてを読んで&
最後にリダイレクトやパイプなどがあるかどうかを調べる必要があります。 (そして}
それは完全に必要ではないと思うかもしれませんが、どこかに一致するものがあることを確認してください。)
殻が何であるか見たい場合実装する、代わりにset -x
(またはset -o xtrace
)を使用してください。