为什么括号中的命令(进程替换)不再起作用?

为什么括号中的命令(进程替换)不再起作用?

我在 Ubuntu 16.04 上使用 bash。今天我注意到以下形式的命令:

cmd1 <(cmd2)

给我错误

-bash: syntax error near unexpected token `('

几天前,非常相似的命令在同一个系统上运行,并且它们在我的另一个 Ubuntu 系统上运行。为什么这种格式突然不再在该系统上工作?

答案1

事实证明,在我的会话早些时候我已经运行了命令

set -o posix

让其他东西工作,但是 POSIX 不支持进程替换,因此使用它的命令失败。

执行以下操作修复了该情况:

set +o posix

相关内容