Estou escrevendo um script para copiar alguns arquivos e tentando usar shopt -s dotglob para permitir que o cp copie arquivos de ponto como .jshinte outros enfeites.
Eu posso executar shopt -s dotglobdiretamente em um prompt do bash sem nenhum erro. No entanto, a execução do script gera o erro:
script.sh: 81: script.sh: shopt: not found
Estou executando esse script no shell bash, com o cabeçalho shebang #!/usr/bin/env bash. Linha de erro:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Não encontrou nada útil no google, alguma ideia de qual é o problema aqui?
#!/bin/bashcabeçalho mais simples ?
shopté um bash embutido, shnão possui shopt, e a mensagem de erro parece uma mensagem de erro de dash. Então, provavelmente, o erro aqui está executando um script bash sh(que no Ubuntu é dashpor padrão). Mesmo que shseja um link simbólico bash, executar um script bash shnão é o mesmo que executá-lo bash.