【发布时间】:2012-09-22 09:23:21
【问题描述】:
当我尝试在 bash 函数中引用两个进程替换管道时,只有引用的第一个有效。第二个给出一个“错误的文件描述符”错误,如下所示:
$ foo(){
> cat "$1"
> cat "$2"
> }
$ foo <(echo hi) <(echo bye)
hi
cat: /dev/fd/62: Bad file descriptor
$
似乎一旦引用了第二个管道,就会删除第二个管道,但是 a) 我似乎无法在任何文档中确认此行为,并且 b) 我希望它不会。 =)
关于我做错了什么有什么想法吗? FWIW 我这样做是为了制作一个包装器来使用 Mac OS X 的 FileMerge 图形差异工具,而不是命令行工具,它已经很高兴从命令行处理多个管道。
-罗伯
【问题讨论】:
标签: bash process pipe file-descriptor substitution