Los scripts de shell, o scripts de la línea de comandos, son secuencias de comandos que contienen una serie de instrucciones que pueden ser ejecutadas por el intérprete de comandos de Unix o sistemas basados en Unix, como Linux. Estos scripts son ampliamente utilizados para automatizar tareas repetitivas, administrar sistemas y realizar diversas operaciones en entornos de línea de comandos.
Al escribir scripts de shell, es común utilizar tanto variables como constantes para almacenar valores que pueden ser utilizados en diferentes partes del script. Las variables son símbolos que representan valores o cadenas de texto, mientras que las constantes son valores que no cambian a lo largo de la ejecución del script.

En los scripts de shell, se pueden declarar variables asignándoles valores de la siguiente manera:
bashnombre_variable=valor
Por ejemplo:
bashnombre="Juan"
edad=30
En este caso, nombre
es una variable que contiene el valor «Juan», y edad
es una variable que contiene el valor 30.
Es importante tener en cuenta que en los scripts de shell, no se utilizan tipos de datos explícitos como en otros lenguajes de programación. Las variables pueden contener tanto valores numéricos como cadenas de texto, y el intérprete de comandos de Unix realiza la conversión de tipos según sea necesario.
Para acceder al valor de una variable, se utiliza el símbolo $
seguido del nombre de la variable. Por ejemplo:
bashecho $nombre
echo $edad
Esto imprimirá en la salida estándar los valores de las variables nombre
y edad
.
Además de las variables, en los scripts de shell también se pueden utilizar constantes, las cuales se definen simplemente asignando un valor y no cambian durante la ejecución del script. Por ejemplo:
bashPI=3.1416
En este caso, PI
es una constante que contiene el valor de pi, y su valor no cambiará durante la ejecución del script.
Una vez que se han definido variables y, opcionalmente, constantes en un script de shell, es posible utilizarlas en diversas operaciones, como cálculos aritméticos, manipulación de texto y control de flujo.
Para realizar cálculos aritméticos, se pueden utilizar las variables que contienen valores numéricos junto con operadores aritméticos como suma (+
), resta (-
), multiplicación (*
) y división (/
). Por ejemplo:
bashresultado=$((edad * 2))
echo "El doble de la edad es: $resultado"
En este caso, se multiplica el valor contenido en la variable edad
por 2 y se almacena el resultado en la variable resultado
.
Además de las operaciones aritméticas básicas, los scripts de shell también permiten realizar operaciones más avanzadas, como comparaciones y evaluaciones condicionales utilizando estructuras de control como if
, else
y elif
.
Por ejemplo, para verificar si la edad es mayor o igual a 18 años, se puede hacer lo siguiente:
bashif [ $edad -ge 18 ]; then
echo "Eres mayor de edad"
else
echo "Eres menor de edad"
fi
En este caso, se utiliza el operador -ge
para verificar si la edad es mayor o igual a 18. Si la condición se cumple, se ejecuta el bloque de código dentro del if
, de lo contrario, se ejecuta el bloque de código dentro del else
.
Además de las estructuras de control if
, else
y elif
, los scripts de shell también pueden utilizar bucles for
y while
para repetir una serie de instrucciones un número determinado de veces o mientras se cumpla una condición específica.
Por ejemplo, para imprimir los números del 1 al 5, se puede hacer lo siguiente:
bashfor ((i=1; i<=5; i++)); do
echo $i
done
En este caso, se utiliza un bucle for
que recorre los números del 1 al 5 y los imprime en la salida estándar.
En resumen, los scripts de shell permiten utilizar variables y constantes para almacenar valores que pueden ser utilizados en diferentes partes del script. Estas variables y constantes pueden ser utilizadas en operaciones aritméticas, comparaciones, evaluaciones condicionales y bucles, lo que permite automatizar tareas y realizar operaciones complejas en entornos de línea de comandos.
Más Informaciones
Claro, profundicemos un poco más en el uso de variables y constantes en scripts de shell, así como en cómo se pueden emplear en diversas situaciones.
Las variables en los scripts de shell son flexibles y pueden contener una variedad de tipos de datos, incluyendo números enteros, números de punto flotante, cadenas de texto y matrices (arrays). Sin embargo, es importante recordar que en el shell no hay una distinción explícita entre estos tipos de datos, por lo que el intérprete tratará a todas las variables como cadenas de texto a menos que se realice una conversión explícita.
Por ejemplo, consideremos el siguiente script:
bashnumero=10
cadena="Hola, mundo!"
num_array=(1 2 3 4 5)
Aquí, numero
es una variable que contiene un número entero, cadena
es una variable que contiene una cadena de texto y num_array
es una matriz que contiene una secuencia de números.
Para acceder a los elementos de un array, se utiliza la notación de corchetes y el índice del elemento deseado. Por ejemplo:
bashecho ${num_array[0]} # Imprime el primer elemento del array (1)
echo ${num_array[2]} # Imprime el tercer elemento del array (3)
Además de las variables simples y los arrays, los scripts de shell también pueden hacer uso de variables especiales proporcionadas por el propio intérprete de comandos. Algunos ejemplos de estas variables son:
$0
: El nombre del script.$1
,$2
,$3
, …: Los argumentos pasados al script.$#
: El número total de argumentos.$@
: Todos los argumentos pasados al script como una lista.$?
: El código de salida del último comando ejecutado.
Estas variables pueden ser útiles para acceder a información sobre el entorno en el que se está ejecutando el script y para manejar argumentos de línea de comandos de manera efectiva.
Además de las variables, los scripts de shell también pueden definir constantes utilizando la palabra clave readonly
para garantizar que su valor no cambie durante la ejecución del script. Por ejemplo:
bashreadonly PI=3.1416
Esta declaración asegura que el valor de PI
no se pueda modificar accidentalmente en otra parte del script.
En cuanto a la sustitución de comandos, los scripts de shell permiten ejecutar comandos y utilizar su salida como valor para una variable. Esto se logra utilizando la expansión de comandos con las comillas invertidas () o con la sintaxis
$(…)`. Por ejemplo:
bashfecha_actual=`date`
echo "La fecha actual es: $fecha_actual"
En este caso, el comando date
se ejecuta y su salida se asigna a la variable fecha_actual
, que luego se imprime en la salida estándar.
La expansión de comandos también se puede utilizar directamente en expresiones aritméticas para realizar cálculos. Por ejemplo:
bashresultado=$(($numero + 5))
echo "El resultado es: $resultado"
Aquí, se suma 5 al valor de la variable numero
utilizando la expansión de comandos dentro de una expresión aritmética.
En resumen, los scripts de shell ofrecen una amplia gama de opciones para el uso de variables, constantes y la sustitución de comandos, lo que permite escribir scripts poderosos y versátiles para automatizar tareas y realizar operaciones complejas en entornos de línea de comandos.