私はすべてのコマンドが発生するとエコーされるようにBashスクリプトを書いています。私はとset +x
を使用して、この動作をオンとオフに切り替える必要があることを知っています(SOF post here)。ただし、I/Oリダイレクトなどすべてをエコーしません。バッシュセット-xエコーリダイレクトコマンドと同様に
set -x
./command1 > output1
./command2 arg1 arg2 > output2
これはOUTPUT1とOUTPUT2にリダイレクト
+ ./command1
+ ./command2 arg1 arg2
バッシュが私の標準出力をエコーされていない出力されます。たとえば
、のは、私はこの非常に単純なbashスクリプトを持っているとしましょう。どうしてこれなの?どのようにこの動作を達成できますか?おそらく、スクリプトに設定する必要があるshopt
オプションがありますか?
注記:パイプが期待どおりに印刷されないことに気付きました。例えば、私はこのコマンドを使用した場合:
set -x
./command3 | tee output3
私はこの出力を取得します:
+ tee output3
+ ./command3
コマンドはそれらが持つのではなく、書かれている方法で正確にエコーさI作るにはどうすればよい
スクリプトによって並べ替えられたパイプ?
しかし、FreeBSDシステムはどうですか?私はDEBUGシグナルがないので、そのようなトリックをそこで行うことができないからです。助言がありますか? – vwvolodya