shopt -s dotglob J'écris un script pour copier des fichiers, et j'essaie d'utiliser pour permettre à cp de copier des fichiers dot comme .jshintet ainsi de suite.
Je peux exécuter shopt -s dotglobdirectement à une invite bash sans erreur. Cependant, l'exécution du script génère l'erreur:
script.sh: 81: script.sh: shopt: not found
J'exécute ce script en shell bash, avec l'en-tête shebang #!/usr/bin/env bash. Ligne d'erreur:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
Vous ne trouvez rien d'utile sur Google, vous savez quel est le problème ici?
#!/bin/bashtête plus simple ?
shoptest une commande intégrée bash, shn'a pas shopt, et le message d'erreur ressemble à un message d'erreur de dash. Il est donc très probable que l'erreur ici exécute un script bash avec sh(qui, dashpar défaut, dans Ubuntu ). Même s'il shs'agit d'un lien symbolique vers bash, exécuter un script bash avec shn'est pas la même chose que l'exécuter avec bash.