Guía paso a paso para crear un script de shell en Linux

watch 3m, 44s
views 2

09:48, 05.06.2026

Contenido del artículo
arrow

  • Escribir un script de Shell
  • Añadir comentarios en un script de Shell
  • Trabajar con variables en scripts de shell
  • Especificación del intérprete de scripts de shell
  • Uso de operadores de comparación
  • Comparación de valores enteros 
  • Comparación de enteros
  • Comparación de cadenas en scripts de Shell 
  • Comparación de cadenas
  • Implementación de sentencias condicionales  
  • Uso de la instrucción if
  • Implementación de la lógica if-else
  • Comprensión de los bucles en los scripts de Shell
  • El bucle while
  • El bucle «for»
  • Manejo de argumentos posicionales en scripts
  • Captura y almacenamiento de resultados de comandos
  • Comprender los códigos de salida en los comandos de shell

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.

Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

-10%

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
aiKVM-NVMe 4096 Linux

16.78 /mes

/mes

Facturado cada 12 meses

-21%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
8 TB
wKVM-SSD 8192 Metered Windows

65 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 32768 Linux

69.99 /mes

/mes

Facturado cada 12 meses

-15%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
80 Mbps
DDoS Protected SSD-wKVM 8192 Windows

101 /mes

/mes

Facturado cada 12 meses

-8.9%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 16384 Windows

56 /mes

/mes

Facturado cada 12 meses

-21.5%

CPU
CPU
2 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
300 GB
wKVM-SSD 4096 HK Windows

40 /mes

/mes

Facturado cada 12 meses

-22.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 4096 HK Linux

33 /mes

/mes

Facturado cada 12 meses

-20.4%

CPU
CPU
2 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 2048 HK Linux

18 /mes

/mes

Facturado cada 12 meses

-8.1%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 8192 Windows

31.25 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 1024 Linux

6.1 /mes

/mes

Facturado cada 12 meses

Otros artículos sobre este tema

: Looking glass Hostzealot
: Looking glass Hostzealot
cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.