Bash le permite asignar cadenas completas de texto a variables individuales, lo que simplifica su uso y la escritura de scripts. ¿Cómo funcionan y cómo puedes usarlos? Vamos a averiguar.
¿Qué es una variable?
Las variables son nombres fáciles de recordar que pueden contener diferentes valores alfanuméricos. Son útiles porque permiten aplicar la misma función en diferentes valores, sin tener que volver a escribir un script/pieza de código. También facilitan la escritura del script/pieza de código, ya que en lugar de tratar con valores individuales, puede usar el mismo nombre para todos ellos.
Variables en tiempo real
Bash permite el uso de variables. Puede crear variables sobre la marcha y reutilizarlas durante su sesión actual de Bash. Pueden ayudarlo a usar Bash de muchas maneras diferentes, y desaparecerán después de que finalice la sesión actual.
Por ejemplo, supongamos que está visitando varios sitios. Podría estar investigando o extrayendo datos. Podrías crear la siguiente variable:
sitea=https://www.expertogeek.com
Después de eso, si desea visitar nuestro sitio con Firefox, simplemente puede escribir:
Mucho más fácil y más legible. los $sitea
la variable permanecería asignada al sitio hasta que cambiara su contenido manualmente o hasta que finalice la sesión de Bash. Y, por supuesto, puede crear más variables, como siteb
, sitec
y sited
.
Al configurar nuevas variables, puede usar cualquier nombre que desee y almacenar cadenas alfanuméricas dentro de ellas. Sin embargo, tenga en cuenta que distinguen entre mayúsculas y minúsculas de forma predeterminada. De este modo, $sitea
no sería lo mismo que $SiteA
. Además, tenga en cuenta que debe usar comillas al almacenar cadenas con caracteres especiales dentro de ellas (incluidos los espacios).
Variables en scripts
Las variables en Bash son más útiles al escribir scripts, ya que le permiten escribir un solo script, que luego puede iterar a través de diferentes cadenas o actuar sobre piezas de datos personalizadas. Supongamos que está escribiendo un guión que todos pueden usar en su computadora, pero cada vez que se muestra un saludo personalizado. Sin variables, tendría que escribir una versión diferente del script para cada usuario. Con las variables, mantiene el script igual y solo cambia el nombre del usuario.
Tal script sería algo como lo siguiente:
#!/bin/bash username=Odysseas echo $username
El ejemplo anterior puede parecer redundante; sin embargo, a medida que aumenta la complejidad del código, las variables se vuelven indispensables. Un script puede tener cientos o miles de líneas y contener el nombre del usuario en diferentes lugares. Para entenderlo mejor, considere el siguiente script algo diferente:
#!/bin/bash username=Linus echo Hello $username. This is a simple script I wrote that will repeat your name - that is, $username - often as an actual example of how to use Bash variables. I hope it will make it easier to understand how to use variables to improve your Bash workflow, $username. In this case, the variable username is mapped to your name. Whenever Bash runs into it, it replaces it with $username.
El script anterior usará el nombre definido como el username
variable para completar el texto. Si usa el nombre del usuario real, tendrá que escribirlo cuatro veces. Luego, haz lo mismo con el siguiente usuario y otras cuatro veces con el siguiente. Una y otra vez. Al asignarlo a una variable, solo tiene que cambiarlo una vez para cada usuario, y cada mención del nombre del usuario en el texto se actualizará.
Variables y alias permanentes de Bash
Vimos cómo puede establecer variables temporalmente y cómo, para algo más permanente, puede incluirlas en sus propios scripts. Sin embargo, ¿no es posible establecer variables de forma permanente en Bash? La respuesta es un gran «¡sí!» y solo tienes que editar un único archivo: “~/.bashrc”.
Abra el archivo “~/.bashrc” en su editor de texto favorito. Como prefiero nano, lo hice con:
Le sugerimos que comience con una ejecución de prueba, agregando solo una variable, para que sepa dónde buscar si el proceso no funciona. Vaya al final del archivo y, en una nueva línea, agregue su variable. Por ejemplo, configuré una variable para mi nombre como:
myname="Odysseas Kourafalos"
Guarde su archivo y salga del editor. Los ajustes no se aplicarán inmediatamente. Introduce lo siguiente en tu terminal para que surta efecto:
Ahora puede hacer uso de la variable recién configurada en su sesión de Bash:
Puede configurar tantas variables como desee y simplificar enormemente sus aventuras diarias en Bash.
Para un impulso adicional en la productividad, también vale la pena configurar un tipo diferente de variable: alias. A diferencia de las variables típicas, que se asignan a los datos que puede usar en los comandos, se usan alias en lugar de los comandos reales.
Al igual que puede usar una variable fácil de recordar para contener largas cadenas de texto, puede usar alias como alternativas fáciles a comandos complejos. Puede encontrar más información sobre ellos aquí, donde convertimos un comando de compresión 7zip completo en un alias de dos caracteres.
Como nota final, incluso si ha establecido permanentemente una variable en .bashrc, puede reasignarle un valor diferente temporalmente, como vimos antes. La variable presentará el nuevo contenido hasta que finalice la sesión actual de Bash (después de cerrar sesión o reiniciar) o hasta que vuelva a generar el archivo .bashrc.