Bashでは、関数を定義するために追加の閉じ括弧が必要です。

Bashでは、関数を定義するために追加の閉じ括弧が必要です。

~からこのウェブサイト、ImageMagickを使用して画像のサイズを変更するBash関数があります。

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.

明らかに、追加は}構文的に間違っていますが、Bashによるとこれを入力する必要があります。

答え1

閉じるとき;で表すと{ }終了する必要があります;

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"; }

関連情報