Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/07/2018, à 11:55

FalCT60

Ubuntu 14.04 LTS : while read fait des siennes ?

Bonjour,

Décidément, je les accumule... sad
Soit un fichier donnees.txt

Un
Deux
Trois
Quatre

et un autre fichier test.sh

while read -r; do
echo -e "$REPLY"
done < donnees.txt

Les deux fichiers sont situés au même endroit, le fichier test.sh est bien exécutable.
D'après ce que je pense avoir compris sur cette page, l'exécution du script devrait m'afficher les différentes lignes du fichier txt dans le terminal. Or, il ne se passe absolument rien.
Pourtant, si après l'exécution je tape

echo $REPLY

j'obtiens bien

quatre

ce qui prouve bien que le script s'est correctement exécuté.
Quel est donc ce tour de cochon que me joue le shell ?

Merci d'avance,

J.-Luc

Hors ligne

#2 Le 07/07/2018, à 12:02

pingouinux

Re : Ubuntu 14.04 LTS : while read fait des siennes ?

Bonjour,
Comment as-tu lancé le script ? Chez moi, il fonctionne parfaitement.

Hors ligne

#3 Le 07/07/2018, à 13:24

FalCT60

Re : Ubuntu 14.04 LTS : while read fait des siennes ?

Depuis le terminal :

./test.sh

ou, toujours depuis le terminal :

moi@monPC:~$ while read -r; do
> echo -e "$REPLY"
> done < donnees.txt

avec toujours le même résultat.
Les deux fichiers se trouvent dans mon répertoire personnel et

moi@monPC:~$ echo $REPLY

exécuté manuellement depuis le terminal après exécution du script affiche bien

moi@monPC:~$ quatre

Le mystère reste entier.

Alors... testé sur une autre machine, 16.04 LTS, là

echo -e "$REPLY"

ne retourne rien du tout. mad
Se pourrait-il qu'il me manque quelque paquet indispensable ?

Dernière modification par FalCT60 (Le 07/07/2018, à 13:56)

Hors ligne

#4 Le 07/07/2018, à 16:55

pingouinux

Re : Ubuntu 14.04 LTS : while read fait des siennes ?

Donne le retour de ces commandes, lancées depuis le répertoire où sont tes fichiers (tu fais un copier-coller des commandes, et un copier-coller du résultat) :

pwd
ls -l test.sh donnees.txt
cat test.sh
cat donnees.txt
./test.sh

Hors ligne

#5 Le 07/07/2018, à 20:45

FalCT60

Re : Ubuntu 14.04 LTS : while read fait des siennes ?

Ah-ha ! tout s'est bien passé jusqu'au

cat donnees.txt

qui n'affichait rien bien que son ouverture dans l'explorateur en montrât bien le contenu.
Après l'avoir éliminé par Shift + Suppr, ce que je regrette à présent, je l'ai recréé et repeuplé à l'identique et... ça marche !
Je suppose qu'il devait y avoir une merdouille quelconque dans le fichier, mais il ne sera pas possible de savoir quoi.
J'ai un peu de mal à avaler qu'un truc comme celui-là ait pu faire perdre du temps non seulement à moi, mais également à toi ainsi qu'à ceux qui ont pu avoir la curiosité de me lire.
Je vais tout de même vérifier quelque chose, je reviendrai ensuite rapporter ce que j'aurai (ou non) trouvé.
Bonne soirée,
J.-Luc

Hors ligne