Bash permette di utilizzare: cat <(echo "$FILECONTENT")
Come reindirizzare l'input a un Bash while e preservare variabili dopo ciclo termina
Bash permette inoltre di utilizzare: while read i; do echo $i; done </etc/passwd
di combinare due precedenti questo può essere utilizzato: echo $FILECONTENT | while read i; do echo $i; done
Il problema con l'ultimo è che crea sub-shell e dopo il ciclo while non è più possibile accedere alla variabile i
.
La mia domanda è:
come realizzare qualcosa di simile: while read i; do echo $i; done <(echo "$FILECONTENT")
o in altre parole: Come posso essere sicuro che i
sopravvive ciclo while?
Si prega di notare che sono a conoscenza di racchiudere while in {}
ma questo non risolve il problema (immaginare che si desidera utilizzare il ciclo while in funzione e tornare i
variabile)
http://mywiki.wooledge.org/BashFAQ/024 – tripleee
Correlati: https://stackoverflow.com/questions/37229058/append-to-an-array-variable-from-a-pipeline-command. Spiega tutte le opzioni tra cui la sostituzione di processo sotto menzionata e "lastpipe" e i loro pro e contro. –
Correlati: [Una variabile modificata all'interno di un ciclo while non viene ricordata] (https://stackoverflow.com/questions/16854280/a-variable-modified-inside-a-while-loop-is-not-remembered). – codeforester