Cadena multilínea en Bash

Fumbani Banda 30 enero 2023
  1. Usar here-document para hacer cadenas de varias líneas en Bash
  2. Utilice la variable de shell para hacer cadenas de varias líneas en Bash
  3. Utilice printf para hacer cadenas de varias líneas en Bash
  4. Utilice echo con la opción -e para hacer cadenas de varias líneas en Bash
  5. Utilice echo para hacer cadenas de varias líneas en Bash
Cadena multilínea 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
!
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Artículo relacionado - Bash String