Cadena multilínea en Bash
-
Usar
here-documentpara hacer cadenas de varias líneas en Bash - Utilice la variable de shell para hacer cadenas de varias líneas en Bash
-
Utilice
printfpara hacer cadenas de varias líneas en Bash -
Utilice
echocon la opción-epara hacer cadenas de varias líneas en Bash -
Utilice
echopara hacer cadenas de varias líneas en Bash
Este tutorial demuestra diferentes formas de imprimir una cadena de varias líneas en un archivo en bash sin poner espacio extra (sangría) mediante el uso de here-document, variable de shell, printf, echo y echo con Opción -e.
Usar here-document para hacer cadenas de varias líneas en Bash
Here-document proporciona una forma interactiva de ingresar una cadena de varias líneas en un archivo. El EOF se conoce como Here Tag. La Here Tag le dice al shell que ingresará una cadena de varias líneas hasta la Here Tag, ya que actúa como un delimitador. El << se utiliza para establecer la Here Tag. El > se utiliza para la redirección de entrada. Redirige la entrada al archivo especificado, output.txt, en nuestro caso.
cat << EOF > output.txt
> Hello
> World
> !
> EOF
Comprobemos el contenido del archivo output.txt con el comando cat.
cat output.txt
En la salida, vemos que cada conjunto de palabras tiene su propia línea y no hay espacios adicionales.
Hello
World
!
Utilice la variable de shell para hacer cadenas de varias líneas en Bash
Aquí, estamos usando una variable de shell llamada greet. Hemos asignado una cadena de varias líneas para greet.
greet="Hello
> ,
> wolrd
> !"
El siguiente comando obtiene la cadena de varias líneas en la variable de shell, greet, y la redirige al archivo especificado, multiline.txt, usando >.
echo "$greet" > multiline.txt
Compruebe el contenido del multiline.txt con el comando cat.
cat multiline.txt
En la salida, vemos que cada conjunto de palabras tiene su propia línea y no hay espacios adicionales.
Hello
,
wolrd
!
Utilice printf para hacer cadenas de varias líneas en Bash
Podemos usar printf con el carácter de nueva línea y redirigir la salida a un archivo usando >. El contenido del archivo no tiene espacios adicionales.
#!/bin/bash
printf "Every word is on a seperate line!\n"
printf "%s\n" "Hello" "," "World" "!" > multiline.txt
Producción :
Every word is on a separate line!
Imprima el contenido de multiline.txt con el comando cat.
cat multiline.txt
En la salida, vemos que cada conjunto de palabras tiene su propia línea y no hay espacios adicionales.
Hello
,
World
!
Utilice echo con la opción -e para hacer cadenas de varias líneas en Bash
El siguiente script bash imprime las palabras en multiline.txt sin espacios adicionales. La opción -e permite la interpretación de caracteres de escape en la variable greet.
#!/bin/bash
greet="Hello\n,\nWorld\n!"
echo -e $greet > multiline.txt
Imprima el contenido de multiline.txt con el comando cat
cat multiline.txt
En la salida, vemos que cada conjunto de palabras tiene su propia línea y no hay espacios adicionales.
Hello
,
World
!
Utilice echo para hacer cadenas de varias líneas en Bash
El siguiente script asigna una cadena de varias líneas a una variable llamada greet. A continuación, el contenido de la variable se redirige a los archivos multiline.txt utilizando >. Las comillas de la variable greet conservan las nuevas líneas.
#!/bin/bash
greet="Hello
,
World
!"
echo "$greet" > multiline.txt
Muestra el contenido de multiline.txt con el comando cat.
cat multiline.txt
En la salida, vemos que cada conjunto de palabras tiene su propia línea y no hay espacios adicionales.
Hello
,
World
!
