bash スクリプトでは、wait を使用して子プロセスの pid を待機しています。その子プロセスがログ ファイルに書き込んでいます。プロセスが完了するのを待つと同時に、bash スクリプトでそのログ ファイルを std out にする方法はありますか?
1615 次
3 に答える
4
tail
コマンドが完了するのを待つ間、コマンドを使用してファイルを追跡します。
command &
cmdpid=$!
tail -f -n +0 logfile &
wait $cmdpid
kill $!
command
これは William のソリューションと精神的に似ていますが、重要な違いが 1 つあります。ファイルを印刷するよりも完了するのに時間がかかる場合は、ログ ファイルを正しく印刷します (非常に高速であるため、非常にcat
可能性が高い)。cat
この-n +0
オプションはtail
、次の更新を開始する前にファイル全体を印刷するように指示します。
于 2012-09-10T20:26:46.833 に答える
0
バックグラウンドで cat を実行します。
cmd-that-logs-to-file &
pid=$!
cat file &
wait $pid
kill $! # Kill the cat
于 2012-09-10T19:52:02.357 に答える