在bash脚本中,我正在使用wait等待子进程的pid。该子进程正在写入日志文件。在bash脚本中是否有一种方法可以将该日志文件拖出std out,同时等待该进程完成?
答案 0 :(得分:3)
在等待命令完成时,使用tail
命令跟踪文件。
command &
cmdpid=$!
tail -f -n +0 logfile &
wait $cmdpid
kill $!
这与William的解决方案类似,但有一个重要的区别:如果command
完成所需的时间比cat
打印文件的时间长,它将正确打印日志文件(很可能,因为cat
非常快)。 -n +0
选项告诉tail
在更新开始之前打印整个文件。
答案 1 :(得分:0)
在后台运行cat:
cmd-that-logs-to-file &
pid=$!
cat file &
wait $pid
kill $! # Kill the cat
答案 2 :(得分:0)
这使得更简单:
aeCreateTimeEvent