echo -e ne fonctionne pas
Bonjour à tous,
Voici mon script complet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #!/bin/bash
# @(#) tripersonnes
<<COMMENT1
On dispose dun fichier personnes dont chaque ligne est constituée du prénom et du
genre (m pour masculin, f pour féminin) dun individu.
Ex : $ cat personnes
arthur m
pierre m
dominique f
paule f
sylvie f
jean m
$
Ecrire un programme shell tripersonnes qui crée à partir de ce fichier, un fichier
garcons contenant uniquement les prénoms des garçons et un fichier filles contenant
les prénoms des filles.
COMMENT1
if test -f "./filles.txt"
then
rm filles.txt
touch filles.txt
fi
if test -f "./garcons.txt"
then
rm garcons.txt
touch garcons.txt
fi
while read nom sexe
do
case $sexe in
f ) echo -e "$nom\n" >> filles.txt ;;
m ) echo -e "$nom\n" >> garcons.txt ;;
esac
done < personnes.txt |
référence : Introduction à la programmation en Bash d'Eric Sanchis
Pour la commande
Cela fonctionne très bien directement dans le shell, mais dans ce programme écrit dans un fichier, ça ne fonctionne plus. Tous mes noms se retrouvent collés sans espace dans les fichiers de sortie filles.txt et garcons.txt ).
Pourriez-vous m'aider ?
D'avance merci.