我想要lint一个文件,并打印stderr (错误消息),但不打印stdout (说文件是OK的)。
php -l "foo/bar.php"
我认为>&
会带来一些魔力,但我一直不明白它们是如何工作的。
我想要的是消耗所有的stdout,保持stderr。
(抱歉,如果这是令人费解的,但我还没有找到任何关于这方面的问题)
发布于 2014-08-16 01:30:49
只需将标准输出发送到null:
cmd > /dev/null
这保留了stderr,但取消了stdout。
发布于 2014-08-16 01:33:34
您可以使用:
php -l "foo/bar.php" 2>&1 > /dev/null
例如,为了在您的终端上只获取stderr
,将stderr重定向到stdout,将stdout重定向到/dev/null
。
发布于 2014-08-16 01:35:31
如果没有错误,它会向标准输出输出一条"No errors“消息。如果有错误,它会向stderr打印一条详细的消息。我只要这一件。
如果发送了错误消息,这将打印错误消息;如果为空,则打印No error.
。
error=$(php -l "foo/bar.php" 2>&1 >/dev/null)
[[ -z $error ]] && error="No error."
echo "$error"
https://stackoverflow.com/questions/25331205
复制相似问题