2016-05-06 6 views
1

をリダイレクト我々のシェルスクリプトもリストするコマンドを引き起こすヘッダシェルスクリプト:出力

#!/bin/bash -x 

を含有します。入力する代わりに、

$ ./script.sh &> log.txt 

このスクリプトに次のすべての出力をログファイルに記録するコマンドを追加したいと思います。これはどのように可能ですか?

答えて

6

あなたのスクリプトの開始時に、このラインを配置することができます:

# redirect stdout/stderr to a file 
exec &> log.txt 

EDIT:以下のコメントを1として:

#!/bin/bash -x 

# redirect stdout/stderr to a file and still show them on terminal 
exec &> >(tee log.txt; exit) 
+0

はあなたが私は 'を交換する必要が意味しますか#!/ bin/bash -x'で 'exec&> log.txt'を実行しますか?はいの場合、/ bin/bashがどのように起動されているか確認してください。 –

+1

@ThomasSいいえ – 123

+0

'#!/ bin/bash-x'行の直後に' exec&> log.txt'を挿入してください。 – anubhava

関連する問題