Scripting · 8 min read · Nov 14, 2025
Shell Scripting Parte 2: Aceptando Entradas y Realizando Aritmética en Shell
¡Hola! Este artículo es la segunda parte de la serie de tutoriales de scripting en shell de Howtoforge. Para este momento, asumo que has leído la primera parte de la serie y sabes cómo crear un script simple y ejecutarlo. En la segunda parte, aprenderás cómo aceptar entradas del usuario y procesarlas a través del scripting en shell. ¡Comencemos!
Variables en Linux
Al igual que los lenguajes de programación, el shell de Linux tiene la capacidad de almacenar datos en variables. Una variable es un contenedor que almacena temporalmente datos que serán procesados a través de un lenguaje de programación. Hay dos tipos de variables en Linux: las variables de entorno y las variables de shell.
Variables de Entorno
Las variables de entorno son las variables predeterminadas en Linux y se utilizan para pasar información entre procesos en el shell. Las variables de entorno son sensibles a mayúsculas y minúsculas y siempre deben estar en mayúsculas para poder acceder a ellas.
La tabla a continuación muestra las variables de entorno comunes en el shell de Linux:
| Nombre de variable | Uso |
| BASH | Contiene la ruta completa del intérprete de comandos para scripts de Bash |
| BASH_VERSION | Contiene la versión de lanzamiento de bash de la máquina actualmente utilizada |
| HOME | Contiene la ruta relativa del directorio home. |
| LOGNAME | Contiene el nombre de cuenta del usuario actual conectado |
| OSTYPE | Contiene una cadena que describe el sistema operativo actual de la máquina utilizada |
| PATH | Contiene una ruta absoluta separada por dos puntos de los archivos ejecutables en Linux |
| PWD | Contiene el directorio de trabajo actual del shell |
| SHELL | Contiene el shell de línea de comandos preferido |
| USER | Funciona de manera similar a LOGNAME. Contiene el nombre de cuenta del usuario actualmente conectado |
| _ | Contiene el nombre del comando utilizado recientemente en el shell |
Para mostrar el valor de una variable de entorno, el usuario debe anteponer un signo de dólar ($) a la variable que se va a acceder. Por ejemplo, para mostrar información del sistema como el directorio de trabajo actual, el usuario conectado y el tipo de sistema operativo usando echo, usamos:
#!/bin/bash
echo $PWD
echo $LOGNAME
echo $OSTYPEEl resultado es:

Para obtener la lista completa de variables de entorno en Linux, usa el comando env.
Cambiando valores de variables de entorno
Para proporcionar flexibilidad al sistema, estas variables de entorno pueden ser manipuladas. Para establecer un valor en una variable de entorno, usa una expresión de asignación (signo igual).
Ejemplo:
#!/bin/bash
echo $USER
USER="nuevo usuario"
echo $USEREl resultado del script es:

Cuando ejecutas el script, al principio, el $USER en la línea echo $USER muestra el valor de la variable USER. Al usar un operador de asignación (=), la variable USER cambia su valor. Sin embargo, si el usuario asigna valores desconocidos a una variable de entorno, el shell creará otra variable de shell similar a la variable de entorno en el contexto local del script, pero no afectará el comportamiento de otras aplicaciones. Es decir, una vez que nuestro script se cierre, la variable USER retendrá su valor predeterminado.
Ten en cuenta que en nuestro ejemplo anterior, omitimos el signo de dólar ($) en el nombre de la variable al manipular valores de las variables de entorno, como en la línea USER=”nuevo usuario”. Además, al usar el operador de asignación, no debe haber espacio entre el USER y el signo de igual. Agregar un espacio entre ellos crea un error.
Variables de Shell
El shell también permite al usuario declarar variables. Al igual que en PHP, para declarar una variable en scripts de shell, el usuario no tiene que preocuparse por declarar su tipo de dato; el intérprete detectará automáticamente el tipo de dato de la variable según los datos que el usuario almacene en ella durante el tiempo de ejecución.
Reglas para nombrar variables de shell
Al igual que en cualquier lenguaje de programación, hay reglas para nombrar variables de shell. A continuación se resumen las reglas:
- Los nombres de las variables deben comenzar con una letra o un guion bajo.
- Solo deben contener caracteres alfanuméricos o un guion bajo.
- Las variables son sensibles a mayúsculas y minúsculas, por lo que las variables path, PATH y Path son diferentes.
Para probar esta regla, crearemos un script simple a continuación:
#!/bin/bash
12abc=10
abc#*=10
_abc=10
_ABC=2
echo $12abc $abc#* $_abc $_ABCLas líneas 2 y 3 devuelven un error de “comando no encontrado” porque la variable 12abc comienza con un carácter numérico y la variable abc#* contiene caracteres ilegales. También probamos que _abc y _ABC son variables diferentes y que la línea _ABC=2 no anula el valor de _abc.

Asignando valores a variables de shell usando el comando read:
read es un comando que permite aceptar entradas del usuario. La sintaxis para usar el comando read es:
read Por ejemplo, crearemos un script que permitirá a un usuario ingresar su nombre y apellido y mostrarlos. Para que el usuario sepa qué hacer, mostramos un aviso al usuario con el comando echo.
#!/bin/bash
echo "Tu nombre: "
read fname
echo "Tu apellido:"
read lname
echo "¡Hola $fname $lname! Estoy aprendiendo a crear scripts de shell."El resultado es:

Ten en cuenta que, al igual que en nuestro ejemplo anterior, no tenemos que declarar una variable para usarla. El intérprete también crea automáticamente la variable que se utiliza en el comando read. Sin embargo, en el ejemplo, usamos repetidamente el comando echo para crear un aviso al usuario. El comando read también tiene la capacidad de crear un aviso mientras acepta entradas del usuario. La sintaxis para usar un aviso en el comando read es:
read -p "Tu aviso: " Para simplificar nuestro código anterior, podemos reconstruir el código a:
#!/bin/bash
read -p "Tu nombre: " fname
read -p "Tu apellido: " lname
echo "¡Hola $fname $lname! Estoy aprendiendo a crear scripts de shell."Otro beneficio del comando read es que el aviso del comando está justo después del texto y no en la línea siguiente.

El comando read también se puede usar para aceptar contraseñas. A diferencia de las entradas ordinarias, las contraseñas están enmascaradas para proporcionar seguridad. La sintaxis para aceptar una contraseña es:
read -s -p "tu aviso" Realizando aritmética simple usando el shell
Además de aceptar entradas y mostrar salidas, el shell bash también tiene una opción de aritmética incorporada. La tabla a continuación resume los operadores aritméticos incorporados del shell Bash.
| Operador | Descripción | Sintaxis | Uso |
| + | Suma | a=$((b+c)) | Suma el valor de b y c y lo almacena en la variable a |
| - | Resta | a=$((b-c)) | Resta el valor de c de b y lo almacena en la variable a |
| * | Multiplicación | a=$((b*c)) | Multiplica el valor de b y c y lo almacena en la variable a |
| / | División | a=$((b/c)) | Divide el valor de b entre c y lo almacena en la variable a |
| % | Módulo | a=$((b%c)) | Realiza la división módulo de b y c y lo almacena en la variable a |
| ++ | Pre-incremento | $((++aa)) | Incrementa el valor de la variable a inmediatamente |
| ++ | Post-incremento | $((a++)) | Incrementa el valor de la variable a y refleja los cambios en la siguiente línea |
| – | Pre-decremento | $((–a)) | Decrementa el valor de la variable a inmediatamente |
| – | Post-decremento | $((a–)) | Decrementa el valor de la variable a y refleja los cambios en la siguiente línea |
| Exponenciación | $((a2)) | Eleva el valor de a a la potencia de 2 | |
| += | Más igual | $((a+=b)) | Suma el valor de a y b y lo almacena en la variable a |
| -= | Menos igual | $((a-=b)) | Resta el valor de b de a y lo almacena en la variable a |
| *= | Por igual | $((a*=b)) | Multiplica el valor de a y b y lo almacena en la variable a |
| /= | División igual | $((a/=b)) | Divide el valor de a entre b y lo almacena en la variable a |
| %= | Módulo igual | $((a%=b)) | Realiza la división módulo entre a y b y lo almacena en la variable a |
Ten en cuenta que cada vez que realizas una instrucción aritmética, todas nuestras variables estarán encerradas con un signo de dólar y dobles paréntesis. Al hacer esto, el intérprete trata los valores de nuestras variables como números enteros. Sin ello, el intérprete trata los valores de la variable como una cadena. Para tener un ejemplo, ve el script a continuación:
#!/bin/bash
read -p "Ingresa int1: " a
read -p "Ingresa int2: " b
echo $((a+b))
c=$a+$b
echo $cCuando ejecutamos nuestro ejemplo, la línea $((a+b)) suma los valores del usuario que están almacenados en las variables a y b respectivamente, mientras que c=$a+$b trata las variables a y b como cadenas.

Conclusión
Hemos cubierto cómo aceptar entradas y almacenarlas en una variable y cómo realizar operaciones aritméticas en scripting de shell bash. En la próxima parte, presentaremos estructuras de control y particularmente la estructura de decisión.
Referencias:
El Proyecto de Información de Linux. (2007). Recuperado el 29 de abril de 2015, de Linfo.org: http://www.linfo.org/
Cooper, M. (n.d.). Guía Avanzada de Scripting en Bash. Recuperado el 29 de abril de 2015, de http://www.tldp.org/LDP/abs/html/
Variables de Entorno. (n.d.). Recuperado el 29 de abril de 2015, de Documentación de Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.