이 작업을 수행하려면 매우 간단한 스크립트가 필요합니다.
mogrify -resize $1x$2^ -gravity center -crop $1x$2+0+0 $3
따라서 다음과 같이 호출할 수 있습니다.
cropresize.sh 110 110 *.png
문제는 쉘이 *.png
패턴을 그대로 스크립트에 전달하는 대신 패턴을 확장한다는 것입니다.
이를 달성하려면 어떻게 해야 합니까(스크립트, 별칭 또는 기타 동등한 솔루션이 작동합니까)?
답변1
셸은 명령에 인수를 전달하기 전에 전역 확장을 수행하므로 이 작업을 투명하게 수행하는 것은 생각할 수 없습니다. 이는 사용자(인수 인용) 또는 무차별 대입(셸의 전역 확장을 완전히 비활성화)에 의해 제어됩니다 set -o noglob
.
당신은 잘못된 관점에서 문제를 보고 있습니다. 여러 파일 이름 인수를 허용하도록 스크립트를 변경합니다.
x=$1
y=$2
shift 2
mogrify -resize ${x}x${y}^ -gravity center -crop ${x}x${y}+0+0 "$@"
답변2
시도해 봤어?
cropresize.sh 110 110 \*.png
하지만 당신이 말한 것처럼 확장하는 zsh(bash 아님)만 볼 수 있습니다.