1
为什么某些命令无法使用BASH进程替换?
有时,流程替换将无法按预期进行。这是一个例子: 输入: gcc <(echo 'int main(){return 0;}') 输出: /dev/fd/63: file not recognized: Illegal seek collect2: error: ld returned 1 exit status 输入: 但是,当与其他命令一起使用时,它可以按预期工作: grep main <(echo 'int main(){return 0;}') 输出: int main(){return 0;} 我注意到其他命令也发生了类似的故障(即,期望来自进程替换的文件的命令无法使用/dev/fd/63或类似)。这次故障gcc只是最近一次。我是否应该确定一些通用规则来确定何时进程替换将以这种方式失败并且不应该使用? 我正在Ubuntu 12.04上使用此BASH版本(我也在arch和debian中也看到过): GNU bash,版本4.3.11(1)-release(i686-pc-linux-gnu)