在bash中隐藏错误消息

时间:2014-08-17 09:55:46

标签: bash shell

我有问题从shell命令隐藏错误消息,如下例所示。

firs_line=$(head -n 1 file) > /dev/null 2>&1

我希望错误信息会被隐藏,但实际上并不是这样。 如何在head命令成功执行时获取输出但在失败时隐藏错误消息?

提前致谢。

2 个答案:

答案 0 :(得分:18)

错误消息来自head程序(例如,找不到文件)?

在这种情况下,您必须重定向内部的输出:

firs_line=$(head -n 1 file 2>/dev/null)

此外,您只需重定向标准错误(而不是$()应该捕获的标准输出,以存储在firs_line

答案 1 :(得分:2)

firs_line="$([ -r file ] && head -n 1 file)"