![Mac 终端无法识别通配符](https://linux22.com/image/1565344/Mac%20%E7%BB%88%E7%AB%AF%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E9%80%9A%E9%85%8D%E7%AC%A6.png)
我正在尝试编写一个脚本来缩小文件夹中的所有图像。
从这里我懂了:
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
停止对通配符的字面解释?