J'ai lu qu'il est mauvais d'écrire des choses comme for line in $(command)
, la bonne façon semble être à la place:
command | while IFS= read -r line; do echo $line; done
Cela fonctionne très bien. Mais que se passe-t-il si ce que je veux répéter est le contenu d'une variable , pas le résultat direct d'une commande?
Par exemple, imaginez que vous créez le fichier suivant quickfox
:
The quick brown
foxjumps\ over -
the
lazy ,
dog.
Je voudrais pouvoir faire quelque chose comme ça:
# This is just for the example,
# I could of course stream the contents to `read`
variable=$(cat quickfox);
while IFS= read -r line < $variable; do echo $line; done; # this is incorrect