端末に一連のディレクトリを作成し、一連のタスクを実行するループがあり、各コマンドシリーズのコマンドが新しいディレクトリのログファイルに書き込まれることを想定します。これはいくつかの方法(echoを使用/ pythonを使用)で達成できますが、知りたいです。ループで実行されるコマンドの新しいディレクトリにログファイルを自動的に生成するコマンドをループの前に簡単に渡す簡単な方法はありますか?編集:ここでログファイルとは、端末に渡された最終コマンドのみを収集することを意味します。
これを行う同期の1つは、変数値を割り当ててからそれをエコーするのではなく、コマンドに渡されたパラメータの変動をランダムに生成し、「ロギングのためにこのループで次のコマンドを表示する」ことです。どのような「log」コマンドがあるかを知ることは他の多くの状況で役立ちますので、この効果に対する答えを好みます。
答え1
グループで重要なコマンドを実行し、グループから出力をリダイレクトします。
for dir in dir1 dir2 ...; do
logfile="$dir"/log.log # or whatever name you want
{
: create a set of directories
: perform a set of tasks
} > "$logfile"
done
端末からも出力するには、リダイレクトをパイプに変更してください。tee
} | tee "$logfile"