Categorías
GNU-Linux Script

Crea y ejecuta tu primer script de Bash Shell

Comprender variables en Shell Scripting

Comprender variables en Bash Shell Scripting

Seguro que has jugado bastante con las variables si has hecho algún tipo de programación.

Si nunca has trabajado con variables antes, puedes pensar en ellas como un contenedor que almacena una pieza de información que puede variar con el tiempo.

Las variables siempre son útiles cuando se escribe un script bash y en esta guía, aprenderás a usar variables en tus scripts bash.

Usar variables en scripts bash

Anteriormente creamos un simple script de Hola Mundo. Hagamos uno mejor usando variables del shell para que salude a los usuarios con sus nombres. Edita tu script hola.sh y utiliza el comando read para obtener la entrada del usuario:

#! /bin/bash

echo "¿Cuál es tu nombre extraño?"

read nombre

echo "Hola $nombre"

Ahora si ejecutas tu script hola.sh; te pedirá tu nombre y luego te saludará con el nombre que le proporciones.

Sin duda, es mucho mejor que un programa genérico de «Hola, mundo». ¿No te parece?

Explicación paso a paso del script anterior

Ahora vamos a repasar el script línea por línea para asegurarnos de que lo entiendes todo.

Primero incluí la línea shebang para declarar explícitamente que vamos a usar el shell bash para ejecutar este script.

#!/bin/bash

A continuación, pido al usuario que introduzca su nombre:

echo "¿Cuál es tu nombre extraño"

Esto es un simple comando echo para imprimir una línea en la terminal; bastante autoexplicativo.

Aquí es donde ocurre toda la magia:

read nombre

Aquí, utilicé el comando read para transferir el control del script en ejecución al usuario, para que éste pueda ingresar un nombre y luego almacenar lo que ingresó el usuario, en la variable ‘nombre’.

Finalmente, el script saluda al usuario con su nombre:

echo “Hola $nombre”

Fíjate que aquí tienes que preceder el nombre de la variable con un signo de pesos para obtener el valor almacenado en el nombre de la variable. Si omites el signo de pesos, se mostraría «Hola, nombre» en su lugar.

¿Enteros, cadenas o caracteres? Como crear diferentes tipos de datos variables

Vamos a meternos un poco más con las variables.

Puedes utilizar el signo igual para crear y establecer el valor de una variable. Por ejemplo, la siguiente línea creará una variable llamada edad y establecerá su valor a 27.

edad=27

Después de haber creado la variable edad, puedes cambiar su valor tanto como quieras.

edad=3

El comando anterior cambia el valor de la variable edad de 27 a 3.

Las variables pueden contener diferentes tipos de datos; pueden almacenar enteros, cadenas y caracteres.

letra=’c’
color=’azul’
año=2022

Variables constantes en el shell bash

También puedes crear una variable constante, es decir, una variable cuyo valor nunca cambiará. Esto puede hacerse precediendo el nombre de la variable con el comando readonly:

readonly PI=3.14159

El comando anterior creará una variable constante PI y establecerá su valor de 3.14159. Ahora, no puedes cambiar el valor de la variable constante, si lo intentas, obtendrás un error:

-bash: PI: variable de sólo lectura

Como has visto, sólo puedes leer el valor de una variable constante, pero nunca puedes cambiar su valor después de haberla creado.

Sustitución de comandos

La capacidad de almacenar la salida de un comando en una variable se llama sustitución de comandos y es, con mucho, una de las características más sorprendentes de bash.

El comando date es un ejemplo clásico para demostrar la sustitución de comandos:

HOY=$(date)

El comando anterior almacenará la salida del comando date en la variable HOY. Debes notar que es necesario encerrar el comando date entre paréntesis y un signo de pesos (a la izquierda).

Hacer inteligente al script Hola Mundo

Ahora, como acabas de aprender a hacer la sustitución de comandos, tendría sentido visitar el script de Hola Mundo una última vez para perfeccionarlo.

La última vez, le pediste al usuario que ingresara su nombre para que el script lo saludara; esta vez, no vas a preguntar, ¡tu script ya lo sabe!

Utiliza el comando whoami junto con la sustitución de comandos para saludar a quien ejecute el script:

#! /bin/bash           

echo "Hola $(whoami)"

Como puedes ver, ¡sólo necesitas dos líneas! Ahora ejecuta el script:

./hola.sh

Funciona a la perfección.