¿Cómo puedo leer un archivo y redirigir a una variable?

Tengo un archivo con una palabra escrita en ella. Quiero que mi script para poner esa palabra en una variable.

¿Cómo puedo hacer eso?

InformationsquelleAutor Tom Brito | 2011-01-20

5 Kommentare

  1. 50

    en varios de un millón de maneras…

    más sencilla es probablemente

    my_var=$(cat my_file)

    Si utiliza bash y desea obtener spiffy puede utilizar bash4 del mapfile, que pone todo el archivo en una variable de matriz, una línea por celda

    mapfile my_var < my_file
    • Desde cuando es el espaciado antes y después de = permitido en shell scripting?
    • lo siento, brainfart, yo ya había corregido antes de que vi tu comentario
    • saltos de línea hará que la primera parte trata de ejecutar y fallar con un comando no se encuentra el error usar var=$(cat archivo | tr -d ‘\n’) para eliminar todas las líneas nuevas, incluyendo cualquier trailing queridos
    • no no
  2. 33

    La forma más sencilla es probablemente:

    var=$(< file)

    que no crea un nuevo proceso.

    • Esto funciona en Bash y otros avanzados conchas, pero no en el shell Bourne.
    • no la plataforma de la cruz… no trabajo en sh consulte stackoverflow.com/questions/7427262/…
    • ¿Alguien/algo que todavía no utilizan bash, sh en el 2018? Tal vez de Dick Tracy reloj??
    • Advertencia: ningún espacio antes de la «<« (es decir, «(<« en lugar de «( <«).
  3. 3

    Creo que la forma más fácil es algo así como

    $ myvar=`cat file`
    • No es necesario exportar la variable y los espacios alrededor del signo igual no funciona.
  4. 2
    var="`cat /path/to/file`"

    Esta es la forma más sencilla. Tener cuidado con los saltos de línea en el archivo.

    var="`head -1 /path/to/file`"

    Esto sólo va a conseguir la primera línea y nunca va a incluir un salto de línea.

    • Tengo un archivo nammed «registro», y $x="`cat log`" resultados en =2: command not found
  5. 1

    Creo que se tira de saltos de línea, pero aquí va de todos modos:

    variable=$(cat filename)
    • Sólo tira la final de salto de línea. Si usted parece estar recibiendo la otra nueva línea despojado, es porque no estás citando la variable de salida. echo $variable vs echo "$variable"

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea