1

在 bash 脚本中,我正在使用 wait 等待子进程的 pid。该子进程正在写入日志文件。bash脚本中有没有办法将该日志文件尾随到标准输出,同时等待进程完成?

4

3 回答 3

4

tail在等待命令完成时,使用命令跟踪文件。

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

这在本质上类似于威廉的解决方案,但有一个重要区别:如果command完成所需的时间比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 回答
0

这使它更简单:

command &
pid=$!
tail --pid=$pid -f /path/to/log
于 2017-01-12T12:29:36.003 回答