sh/bin bad interpreter: No such file or directory
"Sh/bin bad interpreter: No such file or directory" est une erreur que l'on rencontre couramment sous Linux quand on exécute régulièrement des scripts shell. Le problème vient du fait que le fichier est au format DOS au lieu du format UNIX.
Pour le convertir rapidement au bon format et corriger cette erreur définitivement, on peut utiliser la commande dos2unix :
dos2unix mon-fichier
En fait, il n'y a pas vraiment beaucoup de différences entre le format UNIX et DOS. La seule chose qui change, ce sont les retours chariots en fin de ligne. Au format UNIX, on utilise un simple \n, tandis qu'au format DOS on utilise \r\n.
L'utilisation de la commande od, qui permet de faire un dump au format octal d'un fichier, met en évidence ces disparités. Par exemple, pour un fichier au format DOS :
$ echo "test" > file
$ unix2dos file
unix2dos: converting file file to DOS format ...$ head -1 file | od -c
0000000 t e s t \r \n
0000006
Ou pour un fichier au format UNIX :
$ dos2unix file
dos2unix: converting file file to UNIX format ...$ head -1 file | od -c
0000000 t e s t \n
0000005
Une fois que l'on a en possession toutes ces informations, il devient très facile de programmer sa propre commande de conversion. Voici un exemple avec sed ou perl :
sed -ie 's/\r//' mon-fichier
perl -pi -e 's/\r\n/\n/g' mon-fichier
3 Commentaires pour "sh/bin bad interpreter: No such file or directory"
Flux des commentaires de cet article Ajouter un commentaireHors sujet : L'image en haut c'est archlinux ?
@Tuxargon : oui, c'est bien pacman et archlinux.
merci !!!