Bonjour,

C'est une proposition d'ajout à la FAQ:

Windows et Unix ont des caractères de fin de ligne différents. En cas d'import de fichiers texte (y compris des scripts bash par exemple), il faut les convertir au format Unix sans quoi l'interprêteur (/bin/sh ou /bin/bash par exemple) ne pourra pas les exécuter :

Le fichier au format Windows non converti au format Unix fera apparaitre des caractères ^M (ASCII=\x0D$)si vous l'ouvrez dans un éditeur (vi, vim, nano, gedit, ..). Il faut donc convertir les fichiers vers le format UNIX de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
find /chemin/vers/mon/repertoire/de/fichiersWindoz/ -type f -exec sed -i -e "s/\r$//" {} \;
Vérification que les caractères de fin de ligne ont bien été converti :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cat -Ev <mon_fichier_converti_au_format_UNIX>
ou plus simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cat -e <mon_fichier_converti_au_format_UNIX>
Note 1: cela n'est a priori pas nécessaire si vous copiez/collez un code écrit sous Windows dans un éditeur Linux. La conversion se fait à la volée par l'éditeur dans le cas de gedit par exemple. Par contre, il faut convertir les formats pour des fichiers transférés par copie de fichiers.

EDIT:
Note2: Il existe aussi le paquet dos2unix sur les principales distributions, mais ça impose d'ajouter un paquet supplémentaire, pas forcément utile sur une machine vouée à la production par exemple.