O padrão !(pattern-list)
é um balão estendido . Muitas distros têm habilitado para shells interativos, mas não para shells não interativos. Você pode verificar isso com
$ shopt extglob
extglob on
$ bash -c 'shopt extglob'
extglob off
Para corrigir seu script, você precisa ativá-lo: add
shopt -s extglob
no começo dele.