Ho letto che è male scrivere cose come for line in $(command)
, invece sembra essere il modo corretto:
command | while IFS= read -r line; do echo $line; done
Funziona benissimo. Ma cosa succede se ciò su cui voglio iterare è il contenuto di una variabile , non il risultato diretto di un comando?
Ad esempio, immagina di creare il seguente file quickfox
:
The quick brown
foxjumps\ over -
the
lazy ,
dog.
Vorrei poter fare qualcosa del genere:
# 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