/bin/sh:如何从 &3 重定向到命名管道?
Posted
技术标签:
【中文标题】/bin/sh:如何从 &3 重定向到命名管道?【英文标题】:/bin/sh: How to redirect from &3 to named pipe? 【发布时间】:2010-01-27 12:38:45 【问题描述】:我有一个从命名管道读取的后台进程。 例如
mkfifo /tmp/log.pipe
./myprog.sh < /tmp/log.pipe
我想使用 &3 而不是指定 /tmp/log.pipe
echo "aaa" >&3
但结果类似于echo "aaa" > /tmp/log.pipe
如何每次都将 &3 重定向到 /tmp/log.pipe。
【问题讨论】:
【参考方案1】:exec 3>/tmp/log.pipe
【讨论】:
我试过了,但是 shell 等待了一些东西。我必须 Ctrl+C 才能恢复正常。它在等什么?我使用 bourne shell 它应该在脚本中使用。 哦,谢谢。所以我必须在每个脚本中添加exec 3>/tmp/log.pipe
行吗?有没有办法全局设置?
有一种解决方法,但它非常 hackish,如果您不记得每次都这样做,您的脚本将会崩溃。最好将它放在需要它的每个单独的脚本中。简而言之,编写一个执行 exec 然后调用 shell 的脚本。以上是关于/bin/sh:如何从 &3 重定向到命名管道?的主要内容,如果未能解决你的问题,请参考以下文章