1
をリダイレクト我々のシェルスクリプトもリストするコマンドを引き起こすヘッダシェルスクリプト:出力
#!/bin/bash -x
を含有します。入力する代わりに、
$ ./script.sh &> log.txt
このスクリプトに次のすべての出力をログファイルに記録するコマンドを追加したいと思います。これはどのように可能ですか?
をリダイレクト我々のシェルスクリプトもリストするコマンドを引き起こすヘッダシェルスクリプト:出力
#!/bin/bash -x
を含有します。入力する代わりに、
$ ./script.sh &> log.txt
このスクリプトに次のすべての出力をログファイルに記録するコマンドを追加したいと思います。これはどのように可能ですか?
あなたのスクリプトの開始時に、このラインを配置することができます:
# 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)
はあなたが私は 'を交換する必要が意味しますか#!/ bin/bash -x'で 'exec&> log.txt'を実行しますか?はいの場合、/ bin/bashがどのように起動されているか確認してください。 –
@ThomasSいいえ – 123
'#!/ bin/bash-x'行の直後に' exec&> log.txt'を挿入してください。 – anubhava