2012-06-12 25 views
1

我在CentOS机器上测试了它,并且它很好地工作。现在在另一台机器上,我尝试了这个,它无法工作。什么是不正确的?Bash:在子外壳中的树方向工作不正确

command 2> >(tee stderr.log >&2) && exit 

我收到此消息。

sh: syntax error near unexpected token `>' 

有什么建议吗?

回答

2

答案出现在错误消息中。传统的Bourne shell(sh)不支持进程替换(例如>(command))。你没有使用Bash。您可以使用chsh命令更改您的默认shell。

+0

@hexacyanide是的,在很多系统上'sh'实际上是'bash',但'bash'中有几种兼容模式,它们通常取决于shell的启动方式。因此,即使'sh'在内部使用'bash',它的行为通常会与以'bash'调用它不同。如果这在脚本中,您应该通过将'#!/ bin/sh'中的shebang行更改为'#!/ bin/bash'来解决您的问题。 –

+0

@hexacyanide:但是,请注意,在Ubuntu上'/ bin/sh'表示'dash',而不是'bash'。 – choroba

+0

@hexacyanide:你在系统中使用什么操作系统或发行版? –