如何压缩命令的错误信息?

时间:2015-09-03 15:31:19

标签: linux bash

如何禁止shell命令的错误消息?

例如,如果目录中只有jpg个文件,则运行ls *.zip会显示错误消息:

   $ ls *.zip
   ls: cannot access '*.zip': No such file or directory

是否有抑制此类错误消息的选项?我想在bash脚本中使用此命令,但我想隐藏所有错误。

3 个答案:

答案 0 :(得分:49)

大多数Unix命令(包括ls)会将常规输出写入stdout并将错误消息写入stderr,这样您就可以使用bash redirection丢弃错误消息,同时保留常规输出:

ls *.zip 2> /dev/null

答案 1 :(得分:8)

$ ls *.zip 2>/dev/null

redirect stderr上的任何错误消息发送到/ dev / null(即你不会看到它们)

请注意,返回值(由$?给出)仍将反映发生错误。

答案 2 :(得分:4)

要取消错误消息并返回退出状态零附加||是的,例如:

$ ls *.zip && echo hello
ls: cannot access *.zip: No such file or directory
$ ls *.zip 2>/dev/null && echo hello
$ ls *.zip 2>/dev/null || true && echo hello
hello

$ touch x.zip
$ ls *.zip 2>/dev/null || true && echo hello
x.zip
hello