web-dev-qa-db-fra.com

Impossible d'utiliser "./" pour exécuter un script Shell

Peut-être que quelqu'un ici pourrait m'aider. Avoir installé Ubuntu 12.04 LTS (kubuntu) sur deux machines. Les fichiers .bashrc et .bash_profile sont identiques car les structures de fichiers de chaque ordinateur sont identiques.

Sur la machine 1, j'exécute des scripts bash dans une fenêtre de terminal avec le simple: ./scriptname.sh

Sur la machine 2, je ne peux pas faire cela et dois utiliser: sh nom_script.sh Je ne peux pas non plus utiliser ./ et compléter le nom de fichier du script.

Tous les bits exécutables sont définis correctement, tous les fichiers et dossiers disposent des autorisations appropriées. Shebang est défini correctement dans l'en-tête des scripts.

Des idées pourquoi cela se produirait?

À votre santé

4
adeliefan

Si le script n’est pas exécutable, le seul problème serait que cela se produise. Je sais que vous avez dit que le bit exécutable est activé, mais assurez-vous:

chmod +x scriptname.sh
2
Josiah Kiehl

Les erreurs que vous voyez peuvent être causées par une tentative d'exécution d'un fichier exécutable sur un support monté avec la propriété "noexe". Tapez mount et examinez les propriétés du périphérique contenant le script. Modifiez les propriétés/etc/fstab du montage si nécessaire.

2
ubfan1

J'ai lu divers problèmes liés à l'auto-complétion, pas nécessairement à 12.04, et les deux options suivantes semblent être utiles:

Tout d’abord, essayez désactivant l’achèvement programmable bash: commentez ces trois lignes à la fois dans /etc/bash.bashrc et dans le $HOME/.bashrc de l’utilisateur:

 if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
     . /etc/bash_completion
 fi

Vous constaterez peut-être que ces lignes ont déjà été commentées avec # devant, auquel cas il suffit de le laisser tel quel.

Alors deuxièmement, essayez en réinstallant bash-complétion:

Sudo apt-get purge bash-completion
Sudo mv /etc/bash_completion.d /etc/bash_completion.d.bak
Sudo apt-get install bash-completion
1
Lars Rohrbach