如何阻止尾部已被杀死的行被打印到控制台?

时间:2018-01-16 11:59:07

标签: bash

我有一个脚本在后台添加日志文件,然后将其重定向到文件:

tail -f ~/dev/logs/*.log > $LOG 2>&1 &
LOG_PID=$!

后来我杀了它:

kill $LOG_PID

但它会向控制台输出一条不整洁的消息:

/Users/.../restart: line 47: 66634 Terminated: 15          tail -f ~/dev/logs/*.log > $LOG 2>&1s

如何停止打印该邮件?

2 个答案:

答案 0 :(得分:3)

您正在将stdout和stderr重定向到您的日志文件中(通过将stderr重定向到stdout) - 这就是您看到Terminated消息的原因。由于错误实际写入stderr,仅通过重定向stdout,您将看不到该错误日志行。

基本上你需要做的就是删除你将stderr重定向到stdout(2>&1)的部分。

答案 1 :(得分:1)

原来这是有效的:

kill -INT $LOG_PID