¿Cómo leer un archivo en una variable en el shell?
Quiero leer un archivo y guardarlo en una variable, pero necesito mantener la variable y no sólo imprimir el archivo. ¿Cómo puedo hacer esto? He escrito este script pero no es lo que necesitaba:
#!/bin/sh
while read LINE
do
echo $LINE
done <$1
echo 11111-----------
echo $LINE
En mi script, puedo dar el nombre del archivo como un parámetro, por lo que, si el archivo contiene "aaaa", por ejemplo, se imprimiría esto:
aaaa
11111-----
Pero esto sólo imprime el archivo en la pantalla, ¡y yo quiero guardarlo en una variable! ¿Hay alguna manera fácil de hacer esto?
420
3
En la plataforma cruzada, el mínimo común denominador
sh
se utiliza:En
bash
ozsh
, para leer un archivo completo en una variable sin invocarcat
:Si quieres leer todo el archivo en una variable:
Si quieres leerlo línea por línea
Dos importantes escollos
que fueron ignorados por otras respuestas hasta ahora:
2. Eliminación de la nueva línea final de la expansión de comandos
Este es un problema para el:
pero no para las soluciones basadas en
read
.La expansión de comandos elimina las nuevas líneas finales:
Salidas:
Esto rompe el método ingenuo de lectura de archivos: