从这个站点,我得到了以下 Bash 函数来使用 ImageMagick 调整图像大小:
smartresize() { mogrify -path $3 -filter Triangle -define filter:support=2 -thumbnail $2 -unsharp 0.25x0.08+8.3+0.045 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB $1 }
当我输入上面的内容并按下<Return>
后,Bash 会提示...>
命令不完整。再次按下<Return>
不会让它消失。}
在返回到标准 Bash 提示符之前,我必须输入一个额外的右大括号。
我以前做过,但没有观察到这种行为。 有人可以建议我如何追查原因吗?
更多症状
我尝试使用smartresize()
:
$ mkdir smartout # Create destination folder
$ smartresize C82A4D44-0A8B-4BBA-90DB-45F683B3D8E6rot.jpeg 2016 smartout
# Output from smartresize
mogrify: unable to open image '}': No such file or directory @ error/blob.c/OpenBlob/3537.
mogrify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/562.
显然,extra}
在语法上是错误的,但根据 Bash,我必须输入它。
将bash表达式括在
{ }
;中时 你需要终止;
,所以: