2012-09-10 53 views

回答

3

使用tail命令遵循文件,而你等待命令完成。

command & 
cmdpid=$! 
tail -f -n +0 logfile & 
wait $cmdpid 
kill $! 

這是在精神上類似於威廉的解決方案,但有一個重要的區別:它會正確打印日誌文件,如果它需要更長的時間command完成比它的cat打印的文件(很可能,因爲cat非常快)。 -n +0選項告訴tail在開始更新之前打印整個文件。

+1

+1。衛生署!當然'貓'不會按預期工作! –

0

在後臺運行的貓:

cmd-that-logs-to-file & 
pid=$! 
cat file & 
wait $pid 
kill $! # Kill the cat 
+0

如果有什麼其它的一些後臺進程之前'PID = $'開始後'CMD-是-日誌到文件&'!? –

+0

@KingsIndian如果您沒有記錄pid,那麼您無法可靠地等待特定過程。 –

+0

你的意思是尾巴吧? – Mark

0

這使得簡單:

command & 
pid=$! 
tail --pid=$pid -f /path/to/log