Você precisa especificar o bash shell no shebang para que isso funcione:
#!/bin/bash
Quando o bash executa um script sem um shebang ou com #!/bin/sh
ele é executado em Modo POSIX que tem algumas limitações.
Estou tentando criar um script que eu possa definir como uma tarefa do cron que adicione todos os meus dotfiles a uma pasta que configurei como um repositório do github e, em seguida, os pressiono todas as noites. Meu script é o seguinte.
cp ~/.!(|.|ssh|bash_logout|bash_history) ~/dotfiles
git add .
git commit -m "Test commit"
git push origin master
Estou recebendo o seguinte erro:
./update_dotfiles.sh: line 3: syntax error near unexpected token '('
./update_dotfiles.sh: line 3: 'cp ~/.!(|.|ssh|bash_logout|bash_history) ~/dotfiles'
O comando funciona perfeitamente quando eu o executo, apenas erros quando eu estou correndo são como parte de um script de shell. O script está executando o bash,
Você precisa especificar o bash shell no shebang para que isso funcione:
#!/bin/bash
Quando o bash executa um script sem um shebang ou com #!/bin/sh
ele é executado em Modo POSIX que tem algumas limitações.
Tags bash git github shell-script dot-files