我有问题从shell命令隐藏错误消息,如下例所示。
firs_line=$(head -n 1 file) > /dev/null 2>&1
我希望错误信息会被隐藏,但实际上并不是这样。
如何在head
命令成功执行时获取输出但在失败时隐藏错误消息?
提前致谢。
答案 0 :(得分:18)
错误消息来自head
程序(例如,找不到文件)?
在这种情况下,您必须重定向内部的输出:
firs_line=$(head -n 1 file 2>/dev/null)
此外,您只需重定向标准错误(而不是$()
应该捕获的标准输出,以存储在firs_line
答案 1 :(得分:2)
firs_line="$([ -r file ] && head -n 1 file)"