在bash中隐藏错误消息

Vin*_*ang 11 bash shell

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

firs_line=$(head -n 1 file) > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

我希望错误消息将被隐藏,但实际上它不会.如何在head命令执行成功时获取输出但在失败时隐藏错误消息?

提前致谢.

pqn*_*net 20

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

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

firs_line=$(head -n 1 file 2>/dev/null)
Run Code Online (Sandbox Code Playgroud)

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