Bash Definir variable de cadena múltiple

Bash Definir variable de cadena múltiple
Supongamos que ha encontrado un escenario en el que necesita definir un bloque de cuerdas múltiples en sus operaciones de secuencias de comandos de bash. Si intenta la forma predeterminada de definir una variable en Bash, seguramente encontrará un error o una parte incompleta de la variable.

Esta guía rápida le mostrará métodos para definir variables de cadena multilínea utilizando personajes de escape y Heredoc.

Personajes de escape de bash

Bash, como la mayoría de los lenguajes de programación, proporciona la capacidad de usar personajes de escape. Los personajes de escape nos permiten invocar una nueva interpretación de las secuencias de personajes. Aunque Bash tiene varios personajes de escape, solo necesitamos preocuparnos por \ n (nuevo carácter de línea).

Por ejemplo, si tenemos una cadena multilínea en un script, podemos usar el carácter \ n para crear una nueva línea cuando sea necesario.

Un ejemplo de este caso de uso es:

#!/bin/bash
str = "Esta es una cadena \ n-y otra \ n-y otra \ n-y la final"
echo -e $ str

La ejecución del script anterior imprime las cadenas en una nueva línea donde existe el carácter \ n.

HEREDOC

El método anterior funciona bien para texto de línea simple. Sin embargo, si necesitamos imprimir un texto con otros caracteres especiales, reacciones de violación y citas, se vuelve innecesariamente complejo. Para resolver tal problema, podemos usar HEREDOC.

¿Qué es un Heredoc??

Un HEREDOC es un bloque de código de propósito especial que le dice al shell que lea la entrada de la fuente actual hasta que encuentre una línea que contenga un delimitador.

La sintaxis para Heredoc en Bash es:

DOMINIO << DELIMITER

Bloque de Heredoc


Delimitador

Los delimitadores en un Heredoc pueden ser cualquier cuerda. Sin embargo, las cadenas más comunes son EOF, EOM o FIN.

Una vez que el shell se encuentra con el delimitador, reemplaza todas las variables, comandos y caracteres especiales y luego pasa la información dentro del bloque HEREDOC al comando principal.

Puede incluir caracteres especiales, cuerdas regulares, variables y otros comandos de shell en el bloque Heredoc.

Asegúrese de terminar el bloque HEREDOC con el delimitador. No agregue ningún espacio en blanco antes del delimitador.

Cadena multilínea usando Heredoc

Supongamos que tiene la siguiente cadena:







Documento



Dentro de un script bash, podemos crear una variable y pasar la cadena de arriba a CAT como se muestra a continuación:

#!/bin/bash
cadena = $ (gato << EOF






Documento




EOF
)
Echo $ String

Una vez que ejecute el script anterior, verá una salida a:

Como puede ver, podemos imprimir toda la cadena, incluidos todos los caracteres especiales.

Conclusión

Para esta guía, discutimos cómo definir y usar una cadena multilínea en un script bash. Sin embargo, hay más en HEREDOC de lo que se discutió aquí. Considere el siguiente recurso para obtener más información.