我正在创建一个 Subversion post-commit hook。我需要强制将一个命令输出到 STDERR,以便提交后挂钩将消息编组回客户端。
如何强制 STDOUT 到 STDERR?
在这个简化的示例中,文件foo
存在,但bar
不存在。
# touch foo
# ls foo bar
ls: bar: No such file or directory
foo
我想将 STDOUT 发送到 STDERR。我以为我可以用 来做到这一点>&2
,但它似乎不起作用。
我期待下面的示例将 STDOUT 重定向到 STDERR,这/tmp/test
将包含命令的输出和错误。但相反,STDOUT 似乎从未重定向到 STDERR,因此/tmp/test
只包含来自命令的错误。
# ls foo bar >&2 2>/tmp/test
foo
# cat /tmp/test
ls: bar: No such file or directory
我错过了什么?
我已经在 CentOS、Ubuntu、FreeBSD 和 MacOSX 上尝试过上面的例子。