Bash:抑制标准输出,捕获错误输出

时间:2016-04-07 20:41:08

标签: bash

所以我在bash shell脚本中运行命令,我想只捕获变量中的错误输出。我想要抑制的任何标准输出。

到目前为止,我肯定没有工作。所以我想提出一个更好的主意,并努力寻找答案。

以下是代码示例:

ERROR=$(svn switch "$NEW_URL" --accept postpone 1>/dev/null 2>&1) &

看起来一切都被压制了。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

应该是这样的:

error=$({ echo "stdout"; echo "stderr" >&2; } 2>&1 >/dev/null)
echo "$error"
stderr

即。首先重定向stderr->stdout,然后将标准输出重定向到/dev/null以取消stdout

对于你的命令,它应该是:

error=$(svn switch "$NEW_URL" --accept postpone 2>&1 >/dev/null)

您还需要删除&以避免在后台推送您的命令。