Guía paso a paso para crear un script de shell en Linux
09:48, 05.06.2026
La programación de scripts de shell es una forma estupenda de automatizar tareas y ejecutar comandos de manera eficiente en Linux. Esta guía te ayudará a dar tus primeros pasos desde lo más básico, incluso si eres nuevo en esto.
Escribir un script de Shell
Para crear un script de Shell, abre cualquier editor de texto como nano, vim, o gedit.
Escribe tus comandos y guarda el archivo con la extensión .she.
Ejemplo:
#!/bin/bash
echo "¡Hola, mundo!"
Para hacer que el script sea ejecutable, utiliza este comando:
chmod +x myscript.sh
A continuación, ejecútalo:
./myscript.sh
Añadir comentarios en un script de Shell
Los comentarios ayudan a explicar tu código. En los scripts de shell, los comentarios comienzan con #.
Ejemplo:
# Esto es un comentario
echo "Ejecutando el script..."
Utiliza comentarios para que tu código sea más fácil de entender, tanto para ti como para los demás.
Trabajar con variables en scripts de shell
Las variables almacenan valores que puedes reutilizar.
Ejemplo:
name="Alice"
echo "Hola, $name"
No es necesario declarar el tipo. Puedes asignar y utilizar la variable directamente.
Especificación del intérprete de scripts de shell
La primera línea de un script de shell se denomina shebang. Indica al sistema qué intérprete debe utilizar.
Ejemplo:
#!/bin/bash
Incluye siempre esta línea al principio de tu script para que se ejecute correctamente.
Uso de operadores de comparación
Los operadores de comparación te permiten comparar valores, lo cual es útil para la toma de decisiones en los scripts.
Comparación de valores enteros
Para comparaciones numéricas, utiliza estos operadores:
Comparación de enteros
Operador | Descripción |
-eq | es igual a |
-ne | no es igual a |
-gt | es mayor que |
-ge | es mayor o igual que |
-lt | es menor que |
-le | es menor o igual que |
Ejemplo:
a=10
b=5
if [ $a -gt $b ]; then
echo "$a es mayor que $b"
fi
Comparación de cadenas en scripts de Shell
Para comparar valores de texto (cadenas), utilice estos operadores:
Comparación de cadenas
Operador | Descripción |
== | es igual a |
!= | no es igual a |
\< | es menor que, en orden alfabético ASCII |
\> | es mayor que, en orden alfabético ASCII |
Ejemplo:
str1="apple"
str2="banana"
if [ "$str1" \< "$str2" ]; then
echo "$str1 viene antes que $str2 alfabéticamente"
fi
Implementación de sentencias condicionales
Las sentencias condicionales permiten que tu script elija qué hacer en función de una condición.
Uso de la instrucción if
La if instrucción comprueba una condición y ejecuta comandos si es verdadera.
Ejemplo:
if [ -e myfile.txt ]; then
echo "El archivo existe"
fi
Implementación de la lógica if-else
Puedes usar else para gestionar los casos en los que una condición es falsa.
Ejemplo:
if [ -d myfolder ]; then
echo "La carpeta existe"
else
echo "La carpeta no existe"
fi
También puedes usar elif para condiciones adicionales:
if [ $a -gt $b ]; then
echo "A es mayor"
elif [ $a -eq $b ]; then
echo "A es igual"
else
echo "A es menor"
fi
Comprensión de los bucles en los scripts de Shell
Los bucles te permiten repetir comandos varias veces. Hay dos bucles comunes: while y for.
El bucle while
El while se ejecuta mientras la condición sea verdadera.
Ejemplo:
count=1
while [ $count -le 5 ]; do
echo "Count is $count"
((count++))
done
El bucle «for»
El for bucle recorre una lista o un rango.
Ejemplo:
for i in 1 2 3 4 5; do
echo "Número: $i"
done
También puedes recorrer archivos:
for file in *.txt; do
echo "Archivo encontrado: $file"
done
Manejo de argumentos posicionales en scripts
Los scripts de shell pueden aceptar argumentos desde la línea de comandos.
Ejemplo:
#!/bin/bash
echo "Nombre del script: $0"
echo "Primer argumento: $1"
echo "Segundo argumento: $2"
Ejecuta el script:
./myscript.sh hello world
Salida:
Nombre del script: ./myscript.sh
Primer argumento: hello
Segundo argumento: world
Captura y almacenamiento de resultados de comandos
Puedes capturar el resultado de un comando utilizando $(command).
Ejemplo:
current_date=$(date)
echo "Hoy es $current_date"
Esto almacena la salida de date en una variable.
Comprender los códigos de salida en los comandos de shell
Cada comando devuelve un código de salida. Puedes comprobarlo utilizando $?.
- 0 significa éxito.
- Cualquier otro valor significa que se produjo un error.
Ejemplo:
ls /notfound
if [ $? -ne 0 ]; then
echo "Directorio no encontrado"
fi
Esto ayuda a detectar fallos en los scripts.