如何禁止shell命令的错误消息?
例如,如果目录中只有jpg
个文件,则运行ls *.zip
会显示错误消息:
$ ls *.zip
ls: cannot access '*.zip': No such file or directory
是否有抑制此类错误消息的选项?我想在bash脚本中使用此命令,但我想隐藏所有错误。
答案 0 :(得分:49)
大多数Unix命令(包括ls
)会将常规输出写入stdout并将错误消息写入stderr,这样您就可以使用bash redirection丢弃错误消息,同时保留常规输出:
ls *.zip 2> /dev/null
答案 1 :(得分:8)
答案 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