如何从bash脚本生成新的后台进程,并使用fd重定向将当前脚本的stdout / stderr重定向到该进程的stdin?我知道有几种方法可以实现相同的效果,例如使用命名管道或临时文件,使用coprocs,或在子shell中运行整个脚本并将其中的输出重定向到另一个进程,但我正在寻找从脚本中简单的一行IO重定向,就像我可以这样做:exec 2>&1
。基本上,我想做这样的事情(产生过程的方式当然可以改变):
#!/bin/bash
zenity --text-info & # The process to receive this script's output
# Do something to redirect this shell's stdout
# to the background process's stdin
echo "something" # This should be read by the background process
答案 0 :(得分:0)
我使用流程替换找到了解决方案:
#!/bin/bash
# Redirect stdout/stderr of current process to stdin of spawned process
# The >() syntax evaluates to a file descriptor that is connected
# to the new process's stdin
exec &> >(zenity --text-info)