Altro
Come leggere un file in una variabile nella shell?
Voglio leggere un file e salvarlo in una variabile, ma ho bisogno di mantenere la variabile e non solo stampare il file. Come posso farlo? Ho scritto questo script ma non è proprio quello di cui avevo bisogno:
#!/bin/sh
while read LINE
do
echo $LINE
done <$1
echo 11111-----------
echo $LINE
Nel mio script, posso dare il nome del file come parametro, quindi, se il file contiene "aaaa", per esempio, stamperebbe questo:
aaaa
11111-----
Ma questo stampa solo il file sullo schermo, e io voglio salvarlo in una variabile! C'è un modo semplice per farlo?
420
3
In multipiattaforma, il minimo comune denominatore
sh
si usa:In
bash
ozsh
, per leggere un intero file in una variabile senza invocarecat
:Se volete leggere l'intero file in una variabile:
Se vuoi leggerlo riga per riga:
Due importanti insidie
che sono state ignorate dalle altre risposte finora:
Rimozione del newline in coda all'espansione del comando
Questo è un problema per il:
ma non per le soluzioni basate sulla lettura.
L'espansione dei comandi rimuove i newline in coda:
Uscite:
Questo rompe il metodo ingenuo di leggere dai file: