Como o shell executa a expansão glob antes dos argumentos serem entregues ao comando, não há como pensar de forma transparente: ele é controlado pelo usuário (citar o parâmetro) ou força bruta (desabilitar completamente o globbing). para o seu shell com set -o noglob
).
Você está vendo o problema do lado errado. Altere seu script para aceitar vários argumentos de nome de arquivo:
x=$1
y=$2
shift 2
mogrify -resize ${x}x${y}^ -gravity center -crop ${x}x${y}+0+0 "$@"