如何处理尝试 rm 时缺少操作数错误



>我有以下代码

rm "$torrent"/*.{txt,nfo,jpg} && echo "removed "txt,nfo,jpg" files"

如果没有要删除的文件,那么我会收到"缺少操作数"错误,我想避免该错误,因为它触发了脚本的退出 1。

如果我有以下代码

rm -f "$torrent"/*.{txt,nfo,jpg} && echo "removed "txt,nfo,jpg" files"
即使

没有删除任何文件,rm的计算结果也始终为 true。

我想显示消息"已删除..文件",如果删除了某些文件。 如果没有删除任何文件,我希望静音,没有抛出错误。

我玩弄了

find "$torrent" -type f -name "*.txt" -or -name "*.nfo" -or -name ".jpg" -delete && echo "files were deleted"

但即使没有删除任何文件,它的计算结果也始终为 true。

只需将其重写为适当的if语句:

if rm "$torrent"/*.{txt,nfo,jpg}
then
  echo "removed "txt,nfo,jpg" files"
if

这允许您在set -e生效时对退出状态做出反应,而无需脚本退出

相关内容

最新更新