我想從一個進程獲取標準輸出到另一個不使用標準輸入的進程,因爲那個用於另一個目的。將標準輸出到命令本身需要從自己的標準輸入讀取
總之我要完成這樣的事情:
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