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 / bashwelcomeMessage = "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:
- Nombres en minúsculas: variables que son locales a un script o función.
No importa si se escribe en minúscula / en mayúscula [8] o en estilo camello [7]. El ejemplo anterior usa el estilo de caja camel. - Nombres en mayúsculas: constantes, variables de entorno, variables integradas de shell.
Tenga en cuenta que es posible que estas variables ya estén siendo utilizadas por otros programas. Algunos ejemplos son $ PATH, $ LANG, $ PWD, $ PS4 y $ SHELL.
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 -pdeclare -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 BACKUPPATHConclusió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
- [1] Programación bash, variables, https: // tldp.org / HOWTO / Bash-Prog-Intro-HOWTO-5.html
- [2] Instituto Profesional de Linux LPIC-1, https: // www.lpi.org / our-certifications / lpic-1-overview
- [3] Guía de estilo de Shell de Google, nombres de variables, https: // google.github.io / styleguide / shellguide.html # s7-naming-conventions
- [4] Fahmida Yesmin: Cómo utilizar variables en la programación Bash, https: // linuxhint.com / variables-bash-programming /
- [5] Wiki de Bash Hackers, https: // wiki.bash-hackers.org /
- [6] The Bash, Wikipedia, https: // en.wikipedia.org / wiki / Bash_ (Unix_shell)
- [7] Camel Case, Wikipedia, https: // en.wikipedia.org / wiki / Camel_case
- [8] Snake Case, Wikipedia, https: // en.wikipedia.org / wiki / Snake_case
- [9] ¿Qué es Bash?. https: // www.ñu.org / software / bash / manual / html_node / What-is-Bash_003f.html
- [10] Uso de variables en Bash https: // código abierto.com / article / 19/8 / using-variables-bash
- Comprensión de los elementos de programación de Bash https: // www.linuxjournal.com / content / comprensión-bash-elementos-programación
- Variables de Bash https: // www.javatpoint.com / bash-variables