【问题标题】:/bin/sh: How to redirect from &3 to named pipe?/bin/sh:如何从 &3 重定向到命名管道?
【发布时间】: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。

【问题讨论】:

    标签: unix shell named-pipes


    【解决方案1】:
    exec 3>/tmp/log.pipe
    

    【讨论】:

    • 我试过了,但是 shell 等待了一些东西。我必须 Ctrl+C 才能恢复正常。它在等什么?我使用 bourne shell
    • 它应该在脚本中使用。
    • 哦,谢谢。所以我必须在每个脚本中添加exec 3>/tmp/log.pipe 行吗?有没有办法全局设置?
    • 有一种解决方法,但它非常 hackish,如果您不记得每次都这样做,您的脚本将会崩溃。最好将它放在需要它的每个单独的脚本中。简而言之,编写一个执行 exec 然后调用 shell 的脚本。
    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2012-01-20
    • 2019-02-10
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多