當我嘗試引用bash函數中的兩個進程替換管道時,只有第一個被引用的工作。第二個給出了一個「壞文件描述符」錯誤,像這樣:Bash雙進程替換給出了錯誤的文件描述符
$ foo(){
> cat "$1"
> cat "$2"
> }
$ foo <(echo hi) <(echo bye)
hi
cat: /dev/fd/62: Bad file descriptor
$
看來,第二管道被丟棄當一個被引用,但一)我似乎無法確認任何文件,這種行爲和b)我希望它不會。 =)
任何想法,我做錯了什麼? FWIW我這樣做是爲了製作一個包裝,使用Mac OS X的FileMerge圖形比較工具而不是命令行工具,它已經很樂意使用命令行中的多個管道。
-Rob
這不是一個答案......我剛剛檢查過 - 它在linux上運行並在osx上失敗,這似乎是OP的平臺。 –