Você precisa colocar uma linha shebang na parte superior do script. Sem uma linha shebang, o kernel não sabe que seu script deve ser executado com o bash. Consulte O script da shell falha: Erro de sintaxe: “(” inesperado
Além disso, a sintaxe !(…)
não está ativada por padrão, por motivos históricos (versões anteriores do bash não ofereciam suporte). Você precisa definir a opção extglob
.
#!/bin/bash
shopt -s extglob
echo !(exclude*)