スクリプト(stdin)、stdout、およびstderrを実行するために使用されるコマンドをファイルに印刷する簡潔な方法

スクリプト(stdin)、stdout、およびstderrを実行するために使用されるコマンドをファイルに印刷する簡潔な方法

Bashでスクリプトを実行しようとしています。cc.sh

Bashスクリプトを実行します。

../cc.sh ../seq/ seqf

ここで../seq/seqfおよびは必須パラメータです。

スクリプト(上記のコマンド)を実行するために使用されたコマンドをスクリプトの出力/結果とともにログファイルに保存したいと思います。

コマンドを使用して出力をログファイルとして印刷しましたtee

../cc.sh ../seq/ seqf 2<&1 | tee -a cc.log

cat参照ログ:

"here is where the output shown"

コマンド自体の場合、最も近いコマンドはコマンドでしたscript。ところで、実行に使用するコマンドをバイナリファイルとして保存するようです。

印刷コマンドに加えてより良い方法はありますかscript?あるいは、より良い方法は、スクリプトファイルの実行に使用されたコマンドを出力/結果とともにログファイルに印刷することです。

ログファイルの予想出力:

COMMAND: ../cc.sh ../seq/ seqf
"here is where the output shown"

ベストアンサー1

最も簡単な方法は、名前と引数のリストを標準出力に印刷するようにスクリプトを変更することです。たとえば、スクリプトファイルにecho $0 $@最初の行が含まれている場合は、必要な情報が印刷されます(shを使用してbashで始まるとします)。

#!/bin/sh
echo "$0 $@"

その後、標準出力をファイル、ティー、または必要に応じてリダイレクトできます。

おすすめ記事