【发布时间】:2021-08-06 21:27:49
【问题描述】:
我想在具有不同文件扩展名的目录中的所有文件上执行一个以文件名作为参数的命令。我试过这个:
for i in *.jpg *.docx *.gdi;
do
mycommand dosth -i "$i" -o "${i%.*}.myext";
done
但是,如果文件夹中不存在其中一个文件扩展名,我会收到一条错误消息,提示“找不到文件”。如何更改脚本?
【问题讨论】:
-
你用的是什么外壳?符合 POSIX 的 shell 将不匹配的字符串视为文字字符串,而如果模式不匹配,
zsh会立即引发错误。许多 shell 可以选择忽略不匹配的模式,但这不是 POSIX 规范的一部分。 -
我在 docker 中使用它: FROM debian:10-slim ... ENTRYPOINT for i in .jpg *.docx *.gdi;执行我的命令 dosth -i "$i" -o "${i%.}.myext";完成
标签: shell