IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

tondeurh

Quand un script shell comporte des \r\n de fin de lignes au lieux de \n

Noter ce billet
par , 23/05/2016 à 23h44 (795 Affichages)
Grr! Mon script que j'ai éditer sur mon OS Microsoft avec le super notepad ne fonctionne plus sur Linux!

Soit la tentative d’exécution du script Shell suivant, voici ce que répond l’interpréteur BASH par exemple (toutes ressemblance avec un exemple concret n'est que fortuite!) :

herve@pc26Herve:~/univ/shell$ sudo bash script.sh
[sudo] password for herve:
***** MENU *****
1 ) Affichage des informations à l’écran
2 ) Affichage des informations dans un fichier
Votre choix ?
script.sh: line 7: $’\r’: command not found
‘: not a valid identifier 8: read: `choix
script.sh: line 9: $’\r’: command not found
script.sh: line 11: $’\r’: command not found
script.sh: line 12: syntax error near unexpected token `newline’
‘script.sh: line 12: `case $choix in
Hum! ca sent le script qui possède des caractères de fin de lignes non reconnus par Linux et éditer sous Windows!!.
A quoi voit t’on cela => script.sh: line 7: $’\r’: command not found <= a cela…

-> On peut diagnostiquer cela grâce à la commande « file », comme ceci :

herve@pc26Herve:~/univ/shell$ file script.sh
script.sh: Bourne-Again shell script, UTF-8 Unicode text executable, with CRLF line terminators
Pour convertir ce script et retirer les \r\n de fin et ne conserver que les \n, deux solutions :

Si l’on possède la commande « dos2unix », il suffit dans ce cas de lancer cette commande comme ceci : dos2unix script.sh

Sinon utilisez la commande « tr », comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
tr -d ‘\r’ < script.sh > scriptnew.sh
Il ne reste plus qu’a contrôler le résultat …

herve@pc26Herve:~/univ/shell$file scriptnew.sh
scriptnew.sh: Bourne-Again shell script, UTF-8 Unicode text executable
Ouf, enfin on peut éditer du script Shell avec notepad Microsoft pour l’exécuter sous CygWin durant les TP sans s'installer un Linux ou une super Machine Virtuelle sous VirtualBox!

FIN

Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Viadeo Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Twitter Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Google Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Facebook Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Digg Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Delicious Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog MySpace Envoyer le billet « Quand un script shell comporte des \r\n de fin de lignes au lieux de \n » dans le blog Yahoo

Mis à jour 19/08/2018 à 13h24 par LittleWhite (Balises CODE)

Catégories
Sans catégorie

Commentaires