![为什么括号中的命令(进程替换)不再起作用?](https://linux22.com/image/131888/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%8B%AC%E5%8F%B7%E4%B8%AD%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%88%E8%BF%9B%E7%A8%8B%E6%9B%BF%E6%8D%A2%EF%BC%89%E4%B8%8D%E5%86%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我在 Ubuntu 16.04 上使用 bash。今天我注意到以下形式的命令:
cmd1 <(cmd2)
给我错误
-bash: syntax error near unexpected token `('
几天前,非常相似的命令在同一个系统上运行,并且它们在我的另一个 Ubuntu 系统上运行。为什么这种格式突然不再在该系统上工作?
答案1
事实证明,在我的会话早些时候我已经运行了命令
set -o posix
让其他东西工作,但是 POSIX 不支持进程替换,因此使用它的命令失败。
执行以下操作修复了该情况:
set +o posix