Programación BASH

Exportación de variables de Bash

Exportación de variables de Bash
Comprender las variables en el shell de Bash es esencial para trabajar con Linux de manera profesional. Es uno de los requisitos clave para la programación y para lograr la Certificación del Instituto Profesional de Linux (LPIC) Nivel 1 [2].

El artículo publicado anteriormente por Fahmida Yesmin [4] le ofrece una maravillosa introducción a las variables de Bash. Aquí damos un paso más y explicamos cómo declarar variables en Bash de tal manera que pueda usarlas en otros entornos en su sistema Linux, y qué efectos secundarios correspondientes debe tener en cuenta.

Una breve descripción de Bash

El shell Bash se lanzó por primera vez en 1989 y se ha utilizado como shell de inicio de sesión predeterminado para la mayoría de las distribuciones de Linux. Brian Fox escribió Bash como un shell de UNIX y un lenguaje de comandos para el proyecto GNU como un reemplazo de software libre para el shell de Bourne. Es un acrónimo de Bourne Again Shell. Bash es en gran medida compatible con sh e incorpora funciones útiles del shell Korn ksh y el shell C csh [6].

Si bien el sistema operativo GNU proporciona otros shells, incluida una versión de csh, Bash es el shell interactivo predeterminado. Está diseñado teniendo en cuenta la portabilidad y actualmente se ejecuta en casi todas las versiones de UNIX y otros sistemas operativos [9].

Bash variables en pocas palabras

Las variables son componentes esenciales de los lenguajes de programación. Se referencian y manipulan en un programa informático. En pocas palabras, las variables representan celdas de memoria con nombre. Esto es lo mismo en Bash que en cualquier lenguaje de programación. Esto nos permite, como humanos y usuarios de la computadora, almacenar valores en el "cerebro" de la computadora y encontrarlos nuevamente a través del nombre asignado de la variable.

El término variable se refiere a una forma combinada de dos palabras, i.mi., Variable, lo que significa que su valor se puede cambiar y se puede usar varias veces. En contraste con esto, las variables que no se pueden cambiar se llaman constantes. [10]

Siempre que haya suficiente memoria disponible para su script, puede crear y usar variables libremente. Simplemente puede configurarlos definiendo un nombre de variable y luego asignando su valor. Un nombre de variable en Bash puede incluir letras, dígitos y guiones bajos. Su nombre puede comenzar con una letra y un guión bajo, solo. Los nombres de variable válidos son size, tax5 y _tax20 pero no 5rules.

Un valor de variable en Bash puede contener un número, un solo carácter, una cadena de caracteres o una lista de elementos (llamada matriz). No tiene un tipo de datos visible, y el tipo de datos interno de la variable se calculará (o derivará) automáticamente al asignar un valor. Además, no es necesario declarar la variable: asignar un valor a su referencia creará la variable automáticamente. El siguiente script de ejemplo de Bash demuestra esto para una asignación de cadena y una asignación de número numérico.

#! / bin / bash
welcomeMessage = "Hola mundo!"
echo $ welcomeMessage
precio = 145
echo $ precio

Convenciones de nomenclatura de variables de Bash

No hay reglas fijas para la ortografía de los nombres de las variables, solo convenciones. Se utilizan estas convenciones:

Para las empresas de TI globales, es común trabajar con guías de estilo para garantizar un estilo de codificación común entre la empresa. Consulte el Editorial para desarrolladores de IBM y la Guía de estilo de Google [3] para obtener más información sobre las convenciones que siguen.

Visibilidad variable

El caso predeterminado es que una variable está vinculada localmente a una estructura, función, secuencia de comandos o proceso, y no se puede acceder a ella desde fuera de ella. El siguiente ejemplo muestra esto para la variable $ message que pertenece al script y $ welcome que pertenece a la función outputWelcomeMessage ().

#!/ bin / bash
# definir un mensaje variable para el script
message = "Hola, de nuevo!"
outputWelcomeMessage ()
# definir una variable local
welcome = "Hola!"
echo $ bienvenido

outputWelcomeMessage () # imprime Hola!
echo $ message # imprime Hola, de nuevo!

Para asegurarse de que una variable previamente definida con el mismo nombre esté vinculada localmente, use la palabra clave local como se muestra a continuación. Sin la palabra clave local, la asignación en la línea 8 se relacionaría con la variable definida globalmente con el mismo nombre definido anteriormente.

#!/ bin / bash
# definir un mensaje variable para el script
message = "Hola, de nuevo!"
outputWelcomeMessage ()
# definir una variable local con el mismo nombre
Mensaje local = "Hola!"
echo $ mensaje

outputWelcomeMessage () # imprime Hola!
echo $ message # imprime Hola, de nuevo!

Ampliando el alcance de una variable

Para hacer que una variable interna sea visible para otros procesos secundarios, se necesita un paso adicional. Este paso se llama exportar una variable. Bash ofrece el uso de la palabra clave exportar seguida del nombre de la variable. La siguiente lista demuestra esto para la variable backupPath.

$ backupPath = ”/ opt / backup /”
$ export backupPath

El comando de exportación es un shell incorporado que se utiliza para definir la variable como una que heredan los subcapas (shells generados a partir del original). Las variables que se exportan se pueden leer y escribir en más de un proceso, luego.

La segunda opción es declarar la variable como una variable de entorno desde el principio. Puede hacerlo utilizando la palabra clave declare seguida de la opción "-x" (consulte [5] para obtener más información sobre el comando declare). El efecto es similar al comando de exportación que se introdujo antes.

$ declare -x BACKUPPATH = ”/ opt / backup /”

Heredar de otras sesiones

Cuando ejecuta un programa, hereda automáticamente sus variables de entorno del proceso padre. Por ejemplo, si $ HOME se establece en / root en el padre, entonces la variable $ HOME del niño también se establece en / root.

Más comandos

Entre otros, Linux viene con comandos y opciones útiles que se relacionan con variables. Los dos primeros se llaman env y printenv. Enumeran todas las variables de entorno.

La siguiente imagen muestra la salida del comando env en un terminal que se ejecuta en una sesión X. Contiene variables como $ XTERM (tipo de terminal), $ SHELL (el programa que se llama al iniciar sesión y muestra / bin / bash para la ruta al intérprete de Bash), $ LS_COLORS (los colores que se utilizan para resaltar diferentes archivos tipos al llamar a ls) y $ DESKTOP_SESSION (el entorno de escritorio X actual).

La tercera y la cuarta son opciones del comando de exportación - -p y -n. -p es la abreviatura de imprimir y solo muestra todas las variables exportadas en el shell actual usando el comando declare.

$ exportación -p
declare -x DESKTOP_SESSION = "xfce"
declare -x DISPLAY = ": 0"
declare -x GLADE_CATALOG_PATH = ":"
declarar -x GLADE_MODULE_PATH = ":"
declarar -x GLADE_PIXMAP_PATH = ":"
declare -x HOME = "/ home / frank"
declarar -x LANG = "de_DE.UTF-8 "

La opción -n se usa para desarmar una variable de entorno. La siguiente lista demuestra esto para la variable BACKUPPATH previamente definida.

$ export -n BACKUPPATH

Conclusión

Bash es un entorno muy inteligente pero a veces también un poco complejo. Las variables controlan cómo interactúan las diferentes herramientas. La exportación de variables ayuda a la comunicación entre procesos y es fácil de usar en la vida diaria.

Sobre los autores

Jacqui Kabeta es ambientalista, ávida investigadora, capacitadora y mentora. En varios países africanos ha trabajado en la industria de las tecnologías de la información y en entornos de ONG.

Frank Hofmann es un desarrollador de TI, formador y autor y prefiere trabajar desde Berlín, Ginebra y Ciudad del Cabo. Coautor del Libro de administración de paquetes de Debian disponible en dpmb.org

Enlaces y referencias

Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...
5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...