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

Cha*_*had 4 bash

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

cmd1 <(cmd2)
Run Code Online (Sandbox Code Playgroud)

给我错误

-bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)

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

Cha*_*had 7

原来在我的会话早些时候我运行了命令

set -o posix
Run Code Online (Sandbox Code Playgroud)

使其他工作正常运行,但 POSIX 不支持进程替换,因此使用它的命令失败。

执行以下操作可以解决此问题:

set +o posix
Run Code Online (Sandbox Code Playgroud)