【发布时间】:2015-11-29 12:54:28
【问题描述】:
如何抑制 shell 命令的错误消息?
例如,如果目录中只有jpg 文件,则运行ls *.zip 会给出错误消息:
$ ls *.zip
ls: cannot access '*.zip': No such file or directory
是否有抑制此类错误消息的选项?我想在 Bash 脚本中使用这个命令,但我想隐藏所有错误。
【问题讨论】:
-
如果您使用
ls获取要处理的文件名列表,don't。 -
您可以使用
shopt -s nullglob使 glob 变为空。当然,这对 ls 非常有效,因为它会返回目录中的所有文件。如果你使用类似for file in *.zip的东西,它会工作 -
要抑制错误消息,只需将 stderr 重定向到
/dev/null,如ls *.zip 2>/dev/null -
@chepner Shellcheck for bash 建议使用 ls 而不是 grep。
-
@KalibZen 在哪里?我说的是避免像
for f in $(ls ...)或ls | while read f; do这样的事情。