Alguém por favor pode explicar esse erro Estou entrando no meu script

0

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,

    
por Ben Moore 20.01.2016 / 23:02

1 resposta

0

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.

    
por 20.01.2016 / 23:39