この質問にはすでに回答があります:
コメント
回答
任意のセッションからのすべての出力をキャプチャするために私が見つけた方法は、新しいbashセッションを開始し、ログファイルにティーすることです。スクリプトだけでなく、それ以上の追跡に非常に役立ちます。
bash | tee ~/bash.log #this will save standard output until the bash session is ended bash | tee ~/bash.log 2>&1 #this will save all output including errors until the bash session is ended
または、スクリプトを自分でティーすることもできます
./myscript.sh | tee ./myscript.log #this will log only the output of the script.
コメント
回答
スクリプト内でいつでもscript
を呼び出すことができます。すべてをログに記録します。
bashスクリプトですべてを同時に印刷してlog.txt
に記録するには:
ログの表示log.txt
:
$ ./a.sh Script started, output file is log.txt teste Script done, output file is log.txt $ cat log.txt Script started on Fri Feb 16 17:57:26 2018 command: /bin/bash -c ./a.sh teste Script done on Fri Feb 16 17:57:26 2018
コメント
、その/bin/bash
引数はutil-linux script
)
tee を使用します。
例:
echo "Hello World" | tee out.txt
これにより、コマンドからの出力を含むファイルout.txtが作成され、画面に出力されます。ファイルに追加する場合は、「tee-afilename」を使用します。
echo "Hello" | tee -a out.txt echo "World" | tee -a out.txt
out.txtには、HelloとWorldの2行が含まれます(-a itなし)ワールドのみが含まれます)
スクリプト全体を保存してスクリプト全体を出力する場合:
./script.sh | tee output.txt
コメント