我在 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 系统上工作。为什么这种格式在这个系统上突然不再起作用了?
原来在我的会话早些时候我运行了命令
set -o posix
Run Code Online (Sandbox Code Playgroud)
使其他工作正常运行,但 POSIX 不支持进程替换,因此使用它的命令失败。
执行以下操作可以解决此问题:
set +o posix
Run Code Online (Sandbox Code Playgroud)