Jan 20, 2025
Luis J.
7min Leer
Cualquier lenguaje de programación viene con su propio conjunto de variables. Son una parte esencial de cualquier sistema y se necesitan para ejecutar incluso los programas más simples.
Con las variables los usuarios pueden almacenar cualquier información, como números o fechas, así como cadenas, respuestas a preguntas, caracteres alfanuméricos, su información, o incluso elementos array.
Bash no es la excepción y también viene con variables. Es una shell Unix que lee comandos de shell y los utiliza para interactuar con tu computadora física o un servidor privado virtual (VPS).
Este tutorial cubrirá todos los diferentes tipos de variables en bash y proporcionará algunos ejemplos prácticos de cómo puedes usarlos.

Una variable bash actúa como almacenamiento temporal para una cadena o un número. Las variables Bash son importantes cuando se trata de scripting en Bash. También facilitan a los usuarios escribir funciones complejas y realizar diversas operaciones.
Los usuarios pueden crear variables dándoles un nombre y un valor. Un nombre puede ser cualquier cosa. Sin embargo, no puede empezar con un número y no puede contener espacios, solo guiones bajos si es necesario.
En cuanto al valor, puede ser cualquier cadena de texto o número. Se recomienda mantener el nombre de la variable similar a su valor, ya que es más fácil de recordar y diferenciar entre otras variables.
Estas son algunas otras advertencias de sintaxis que vale la pena mencionar:
Bash viene en dos tipos de variables: definidas por el sistema y definidas por el usuario. Analicemos en mayor detalle:
| Variable | Ejemplo | Función |
| SHELL | /bin/bash | Define el nombre de la interfaz utilizada |
| PWD | /root | Muestra el directorio de trabajo actual |
| LOGNAME | root | Define el nombre del usuario registrado |
| MOTD_SHOWN | pam | Define el mensaje del día para el sistema |
| HOME | root | Directorio principal del usuario |
| LS_COLORS | rs=0:di=01;34:ln=01;36:mh=00:pi=40; | Se usa para establecer los colores en los que se mostrarán los nombres de archivos para el usuario |
| SSH_CONNECTION | 185.185.185.185 54321 185.185.185.186 12 | Información de conexión SSH [IP del usuario] [puerto del usuario] [IP de la máquina Linux] [puerto de la máquina Linux] |
| LESSCLOSE | /usr/bin/lesspipe %s %s | Usado para llamar al postprocesador de entrada |
| TERM | xterm-256color | Define el tipo de terminal |
| LESSOPEN | /usr/bin/lesspipe %s | Utilizado para llamar al posprocesador de entrada |
| USER | root | Nombre del usuario actual |
| SHLVL | 1 | Muestra el número de niveles de shell en los que se está ejecutando el shell actual |
| SSH_CLIENT | 185.185.185.185 54321 12 | Información del cliente SSH [IP del usuario] [puerto del usuario] [puerto de la máquina Linux] |
| PATH | /usr/local/sbin | Define los directorios que se deben buscar para que bash encuentre un comando |
| SSH_TTY | /dev/pts/0_=/usr/bin/printenv | Muestra la ruta al dispositivo asociadocon la consola actual o comando |
Los usuarios siempre pueden verificar la lista de variables definidas por el sistema utilizando los comandos env o printenv.

Bash permite a los usuarios definir y manipular variables tanto en scripts de bash como en la línea de comandos. Echemos un vistazo rápido a ambos ejemplos:
Línea de comandos
Crearemos una variable miusuario y comprobaremos qué shell está utilizando.

Script de Bash
Una forma más conveniente de manipular variables es con la ayuda de un script de bash. Crearemos el mismo script en la línea de comandos pero utilizando un script de bash. Empieza creando un archivo con tu editor de texto preferido:
nano miscript.sh
Luego, pega los siguiente:
#!/bin/bash miusuario="minombre" echo mi usuario es $miusuario y mi shell es $SHELL
Por último, ejecuta el script:
bash miscript.sh

Las variables de bash se utilizan habitualmente en la programación de scripts de bash. Los usuarios pueden definir todo tipo de variables y usarlas en scripts automatizados.
Cuando se ejecutan, estos scripts pueden realizar miles de operaciones con un solo clic, lo que los hace especialmente útiles para tareas de automatización o para ahorrar tiempo escribiendo comandos similares manualmente.
Empecemos con un ejemplo sencillo. Comienza creando un script con tu editor de texto favorito. Vamos a utilizar nano en este caso:
nano script.sh
Luego, pega los siguiente:
#!/bin/bash mivariable="Me encantan los lenguajes de programación y la declaración de variables" echo $mivariable
La primera línea define el shell que vamos a utilizar. En nuestro caso, será un shell bash.
Luego, el script creará una nueva variable llamada mivariable. Ten en cuenta que para asignar una nueva variable, necesitarás usar un signo igual (=).
Usaremos el comando echo para imprimir el valor de la variable. También necesitamos usar un signo de dólar ($), para que bash sepa que necesitamos el valor de una variable.
Por último, ejecuta el script utilizando este comando:
bash script.sh

Como se muestra en el ejemplo anterior, el comando ejecuta todo el script y bash realiza todas las acciones especificadas por el usuario en el sistema.
Bash viene con varios caracteres especiales, también llamados variables especiales. La siguiente tabla te los mostrará todos:
| Variable especial | Explicación |
| $@ | Almacena argumentos como un array |
| $$ | Muestra el ID del proceso de la shell actual |
| $# | Muestra el número de argumentos proporcionados en un determinado script |
| $* | Agrupa todos los argumentos dados conectándolos |
| $! | Muestra el ID del último trabajo en segundo plano |
| $? | Muestra el código de estado de salida para el último comando ejecutado |
| $0 | Muestra el nombre del archivo del script actual |
| $_ | Asigna la variable al último argumento del último comando |
| $- | Muestra las banderas actualmente utilizadas en la shell de bash |
| $1-${11} | Almacena datos de los primeros 11 nombres de argumentos |
Vamos a usar algunos de estos caracteres especiales y hacer un script de ejemplo con ellos. Empieza creando un archivo de script:
nano caracteresespeciales.sh
El siguiente código mostrará la funcionalidad de las variables especiales $0, $*, and $$ :
#!/bin/bash #Crear una nueva variable mivariable="Escribir argumentos de línea de comandos es divertido" #Conectar variables con comillas dobles echo "Yo soy" "una variable" "en bash"; $* #Mostrar el id de proceso del shell actual echo $$ #Mostrar el nombre de archivo de este script echo $0 #Imprimir el valor de mivariable echo $mivariable

Primero declaramos una nueva variable, luego usamos el primer parámetro para conectar las cadenas con comillas dobles en una sola. Luego, utilizamos los caracteres especiales restantes para mostrar el ID de la terminal actual y el nombre del archivo de terminal que ejecutamos.
Cualquier variable que crees aparte de las variables de entorno se considera tuya. En otras palabras, solo funcionará dentro de tu script.
Ten en cuenta que las variables no pueden comenzar con un número ni contener espacios. Sin embargo, se permiten guiones bajos y letras mayúsculas. Vamos a crear un ejemplo de script bash con diferentes tipos de nombres de variables:
nano diferentesvariables.sh
Luego, pega lo siguiente:
#!/bin/bash nombrevariable="Las variables locales en bash son increíbles" Nombrevariable="También se admiten valores numéricos 123" NombreVariable="4 5 6" Nombre_Variable="Configurar variables es divertido" Nombre_Var3="Bash también realiza la división de palabras por lo que cualquier espacio será eliminado 1 2 3 4" echo $nombrevariable echo $Nombrevariable echo $NombreVariable echo $Nombre_Variable echo $Nombre_Var3

Nuestro ejemplo muestra que incluso si los nombres de las variables son similares, todos se interpretan como variables separadas.
Las variables de entorno pueden ser utilizadas por todos los scripts bash en un sistema dado. A diferencia de las variables locales, las variables de entorno se establecen automáticamente por el sistema. Siempre se escriben con letras mayúsculas, lo cual es una de las principales indicaciones de que los usuarios están utilizando variables de entorno.
Por ejemplo, el siguiente script mostrará cuatro parámetros esenciales que los administradores de sistemas pueden usar al gestionar sistemas: tipo de shell, directorio de trabajo actual del usuario, directorio principal y nombre real del usuario.
#!/bin/bash echo "Este usuario está usando el shell $SHELL" echo "Su directorio de trabajo es: $PWD" echo "Mientras que su directorio de inicio es: $HOME" echo "Y el nombre de usuario es: $USER"

Exportar variables en bash permite a los usuarios utilizar dichas variables entre diferentes instancias de shell secundarias. Para exportar variables, primero, necesitamos crear una variable de prueba:
hola=mundo
Ahora, si fueras a imprimir esta variable, funcionaría perfectamente:
echo "$hola"

Ahora, usa el comando de exportación para exportar la variable hola y cambia a una nueva instancia de shell:
export hola bash echo "$hola"

Por ejemplo, si hubieras dejado de lado el comando export, no habría ninguna salida visible.

Las comillas juegan un papel esencial en la terminal bash. Dependiendo de si usas comillas dobles (“) o comillas simples (‘), puede cambiar el resultado.
Por ejemplo, crearemos dos scripts, uno usando comillas dobles y el otro usando comillas simples. Empieza a crear el script de bash pegando el siguiente comando:
nano comillasdobles.sh
Ahora, pega lo siguiente:
#!/bin/bash comillasdobles="Me gusta escribir argumentos de línea de comandos" echo "Las comillas dobles funcionan así: $comillasdobles"

Luego, crea otro script de bash:
nano comillassimples.sh
Finalmente, usa el siguiente comando:
#!/bin/bash comillassimples="Las variables de string son lo mejor" echo 'Las comillas simples funcionan así: $comillassimples'

Las comillas dobles muestran el valor real de la variable, como se ve en los ejemplos. En contraste, las comillas simples solo muestran el nombre de la variable.
La sustitución de comandos es una forma de ejecutar un comando y utilizar su resultado como un nuevo argumento o parte de otro comando.
Por ejemplo, usemos la sustitución para crear 10 archivos con la ayuda de un comando de secuencia y los caracteres especiales $( ):
touch $(seq 1 10)

Los caracteres especiales de sustitución $( ) permiten que se ejecute el comando touch simultáneamente, resultando en un comando que crea 10 archivos vacíos.

Al igual que la mayoría de los lenguajes de programación, bash viene con sus propias variables, clasificadas como locales y variables de entorno. Los usuarios pueden utilizarlas para crear scripts para automatizar tareas o realizar varias otras acciones en la terminal bash.
En este tutorial cubrimos todos los diferentes tipos de variables y también proporcionamos algunos ejemplos útiles de cómo pueden ser utilizadas en escenarios reales en tu servidor físico o virtual.
Esperamos que la información haya sido útil. Si tienes alguna pregunta o sugerencia, déjala en la sección de comentarios abajo.
All of the tutorial content on this website is subject to Hostinger's rigorous editorial standards and values.