我在Upstart脚本中使用echo来logging事物:
script echo "main: some data" >> log end script post-start script echo "post-start: another data" >> log end script
现在这两个并行运行,所以在日志中我经常看到:
main: post-start: some data another data
这并不重要,所以我不会使用正确的同步,但是我认为我会将自动刷新打开,至less减less这种影响。 有没有一个简单的方法来做到这一点?
更新:是的,刷新不会正确地解决它,但我已经看到它在一定程度上帮助这种情况下,这是我需要在这种情况下。 只是我不知道如何在壳牌公司做到这一点
尝试改变:
回声“文字”
至:
猫<< EOF 文本 EOF
我通常使用trailing |grep -F --line-buffered ''
作为执行行缓存的廉价和可靠的方法。 从moreutils也有sponge
延迟所有输出,直到输入完成和关闭。
为什么你认为冲洗会有帮助? 由echo完成的写入包括一个换行符,所以如果第一个脚本在第二个脚本之前完成,那么换行符就已经到了。
在输出中,它不是,这表明第二个脚本在第一个脚本完成之前运行,从而交错输出。
法拉盛对此无能为力,这是一个“适当的”平行竞赛条件。