我想从一个进程获取标准输出到另一个不使用标准输入的进程,因为那个用于另一个目的。将标准输出到命令本身需要从自己的标准输入读取
总之我要完成这样的事情:
echo "a" >&4
cat | grep -f /dev/fd/4
我得到了它运行使用文件作为源文件描述符4,但是这不是我想要的:
# Variant 1
cat file | grep -f /dev/fd/4 4<pattern
# Variant 2
exec 4<pattern
cat | grep -f /dev/fd/4
exec 4<&-
我最好的尝试是,但我得到以下错误信息:
# Variant 3
cat | (
echo "a" >&4
grep -f /dev/fd/4
) <&4
错误消息:
test.sh: line 5: 4: Bad file descriptor
什么是最好的方法来实现这一目标?
啊,我得到了进程替换错误:即使'grep -f <(echo FOO)-i'也可以工作。 但是没有办法做到这一点。我在我看来更可读...(但也许这是一个错误的假设) – doak
不,实际上它更可读;) – doak
你可以看看一些类似的问题:http://stackoverflow.com/questions/19715318/ – doak