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

관련 정보