Sto scrivendo uno script per copiare alcuni file e sto provando shopt -s dotglob
a abilitare cp per copiare dotfile come .jshint
e quant'altro.
Posso eseguire shopt -s dotglob
direttamente a un prompt di bash senza errori. Tuttavia, l'esecuzione dello script genera l'errore:
script.sh: 81: script.sh: shopt: not found
Sto eseguendo questo script in bash shell, con l'intestazione shebang #!/usr/bin/env bash
. Riga di errore:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Non trovi nulla di utile su Google, hai idea di quale sia il problema qui?
#!/bin/bash
intestazione più semplice ?
shopt
è un built-in bash, sh
non ha shopt
, e il messaggio di errore sembra un messaggio di errore da dash
. Quindi molto probabilmente l'errore qui sta eseguendo uno script bash sh
(che in Ubuntu è dash
di default). Anche se sh
è un collegamento simbolico a bash
, eseguire uno script bash con sh
non è lo stesso con cui eseguirlo bash
.