Le script pourrait-il utiliser des retours à la ligne Dos ?
Essayez d'exécuter dos2unix dessus.
La première ligne, #!/bin/bash
, indique à Linux où trouver l'interpréteur. Le script doit également être exécutable avec chmod +x script.sh
, ce que vous avez apparemment fait.
Il est fort probable que vous ayez créé ce fichier avec un éditeur Windows, qui placera un <cr><lf>
à la fin de chaque ligne. C'est le standard sous dos/windows. OS X placera un <cr>
à la fin de chaque ligne. Cependant, sous Unix/Linux, la norme est de simplement mettre un <lf>
au bout de la ligne.
Linux recherche maintenant un fichier nommé /bin/bash<cr>
pour interpréter le fichier, où <cr>
est un caractère de retour chariot, qui est un caractère de fichier valide sous Linux. Un tel fichier n'existe pas. D'où l'erreur.
Solution : Modifiez le fichier avec un éditeur sous Linux et débarrassez-vous du <cr>
supplémentaire . Un outil qui fonctionne généralement lorsque le fichier est modifié sous Windows est dos2unix
.