【发布时间】:2018-10-17 22:33:46
【问题描述】:
我有这个脚本:
mkfifo foo
exec 3<>foo
cat <&3 | while read line; do echo " [prepend] $line"; done &
echo "foo" >&3
echo "bar" >&3
echo "baz" >&3
我只是想在每个命令的 stdout/stderr 的每一行添加一个字符串。
问题是命名管道会遇到EOF,所以cat命令会很快退出。
我可以使用一些文件来代替永远不会遇到 EOF 的命名管道吗?这样对它使用的 cat 命令基本上永远不会退出?
我可以使用tail -f 而不是cat,但我发现tail -f 有时会很奇怪。
【问题讨论】:
-
刚试了下发现
cat没有退出。相反,它在脚本完成后继续在后台运行。你的目的是什么? -
是的,目的是在脚本中添加 [xyz] 的所有 stdout/stderr ...但是,我在这里找到了更好的解决方案:unix.stackexchange.com/questions/442461/…
-
我添加了一个答案:stackoverflow.com/a/50238682/5047085