Cette question a déjà des réponses ici :
Commentaires
- Connexes: la ligne shebang ne fonctionne pas avec cr-lf
- … car vous utilisez
vi
, vous pouvez changer entre les fins de ligne en utilisant:set ff=unix
et:set ff=dos
- il y a un beaucoup de questions sur ce CR si vous recherchez
^M
Quest-ce que^M
et comment est-ce que je men débarrasse? , Le script Unix ajoute ^ M à la fin de chaque ligne , -bash: ./mon_script: / bin / bash ^ M : mauvais interprète: aucun fichier ou répertoire de ce type … - Je ' m voter contre parce que ' est un doublon comme le montre @phuciv.
- Concernant votre récente modification de cette ancienne question: la deuxième question marquée comme un doublon contient des réponses qui nutilisent pas
dos2unix
.
Réponse
Vous semblez avoir des fins de ligne de style Windows (CRLF, ^ M ^ J ) au lieu de fins de ligne de style Unix (LF, ^ J). Essayez dos2unix
dos2unix delete_7gg.sh
puis exécutez comme dhabitude
De man:
dos2unix – Convertisseur de format de fichier texte DOS / MAC vers UNIX
tr -d '\r' < input > output
.