Mac 终端无法识别通配符

Mac 终端无法识别通配符

我正在尝试编写一个脚本来缩小文件夹中的所有图像。

这里我懂了:

for i in *.png; do sips -Z 800 "${i}" --out "${i%png}"; done

但我一直收到这个错误:

Warning: *.png not a valid file - skipping
Error 4: no file was specified
Try 'sips --help' for help using this tool

我究竟做错了什么?

这是我的 bash 版本:

bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.

答案1

脚本需要在包含图片的文件夹中执行。如果当前文件夹中没有任何.png文件,循环将分配*.png给变量i。结果,sips 会告诉您这不是一个有效文件,这是正确的。

答案2

你有没有尝试过

set +o noglob

停止对通配符的字面解释?

相关内容