Bash Script – DÍA 1

Tu primer script Bash: shebang, ejecutar, variables y leer datos


1. Objetivo del día

Hoy aprenderás lo imprescindible para crear y ejecutar tu primer script:

  • crear un archivo .sh
  • entender el shebang
  • ejecutar scripts correctamente
  • usar variables
  • leer datos del usuario (read)
  • mostrar mensajes por pantalla

Si hoy consigues crear un script que pida un dato y lo muestre → Día completado.


2. Requisitos

  • Haber completado el mini tutorial de Linux Command Line (recomendado)
  • Saber moverte por la terminal
  • Saber usar chmod

3. ¿Qué es un script Bash?

Un script es un archivo de texto que contiene una serie de comandos que Bash ejecuta línea a línea.

En lugar de escribirlos uno a uno en la terminal puedes automatizarlos en un solo archivo.


4. Crear tu primer script

4.1. Crear un archivo vacío

touch hola.sh

Abrirlo con tu editor preferido:

nano hola.sh

(o vi hola.sh si quieres practicar Vim)


4.2. Añadir el “shebang” (muy importante)

En la primera línea, siempre:

#!/bin/bash

Esto le dice al sistema con qué intérprete ejecutar el archivo.


4.3. Añadir un comando básico

Debajo del shebang:

#!/bin/bash

echo "Hola, este es mi primer script Bash"

Guardar y salir.


5. Ejecutar el script

Antes de ejecutarlo, hazlo ejecutable:

chmod +x hola.sh

Ejecutarlo:

./hola.sh

5.1. Ejecutarlo sin permisos (método alternativo)

bash hola.sh

Este método NO necesita permisos de ejecución, pero es menos profesional.


6. Variables en Bash (muy simple)

Crear una variable:

nombre="Tomas"

Usarla:

echo "Hola $nombre"

No uses espacios alrededor del signo igual:

nombre = "Tomas"
✔️ nombre="Tomas"


6.1. Ejemplo práctico

#!/bin/bash

nombre="Tomas"
echo "El usuario es: $nombre"

7. Leer datos del usuario: read

Esto hace que tu script pregunte algo:

read -p "Introduce tu nombre: " nombre
echo "Encantado de conocerte, $nombre"

8. Ejecutar varios comandos en un script

Puedes poner cualquier comando válido:

#!/bin/bash

echo "Mostrando la fecha:"
date

echo "Contenido del directorio:"
ls -lh

9. Práctica guiada (20–30 minutos)

9.1. Crear un script simple (5 minutos)

Crear archivo:

nano saludo.sh

Contenido:

#!/bin/bash

echo "¿Cómo te llamas?"
read nombre

echo "Hola $nombre, ¡bienvenido al mundo de Bash!"

Dar permiso:

chmod +x saludo.sh

Ejecutarlo:

./saludo.sh

9.2. Añadir más variables y varios comandos (5–10 minutos)

Modifica tu script saludo.sh para aprender a combinar varias cosas:

#!/bin/bash

# Preguntar el nombre
read -p "Introduce tu nombre: " nombre

# Crear una variable fija
equipo="tu sistema Linux"

# Mostrar mensajes combinados
echo "Hola $nombre"
echo "Estás usando $equipo"
echo "La fecha actual es:"
date

echo "Tu directorio de trabajo es:"
pwd

Ejecuta de nuevo y revisa cómo se combinan variables + comandos.


9.3. Practicar lectura de varios datos (5 minutos)

Crea un nuevo script:

nano datos.sh

Contenido:

#!/bin/bash

read -p "Nombre: " nombre
read -p "Ciudad: " ciudad
read -p "Tu shell actual es: " shell

echo "Resumen:"
echo "Nombre: $nombre"
echo "Ciudad: $ciudad"
echo "Shell: $shell"

Este ejercicio refuerza el uso de read varias veces seguidas.

Nota explicativa sobre read

En Bash existen varias formas de pedir datos al usuario, pero no todas funcionan en todas las versiones, shells o entornos.
Para evitar errores, se puede usar la forma más básica y universal, que funciona en cualquier sistema:

Forma universal (siempre funciona):

echo -n "Dime tu nombre: "
read nombre
  • echo -n imprime el mensaje sin salto de línea.
  • read nombre recoge lo que escriba el usuario.
  • Este método funciona en todas las versiones de Bash, sin opciones adicionales.

¿Por qué también usamos read -p en el tutorial?

Aunque la forma más universal y compatible es:

echo -n "Dime tu nombre: "
read nombre

en la mayoría de sistemas actuales (Linux modernos, macOS y Bash recientes) existe una forma más cómoda:

read -p "Dime tu nombre: " nombre

¿Qué hace -p?

La opción -p significa prompt:
Muestra un mensaje antes de leer la entrada del usuario, sin necesidad de usar echo.

Diferencias importantes

  • read -p funciona en Bash moderno, el que incluyen la mayoría de distribuciones (Bash 4.x, 5.x).
  • No es 100% universal: no existe en todos los shells (por ejemplo, no funciona en sh ni en algunos entornos POSIX puros).
  • Por eso enseñamos ambas formas:
    • La forma universal (echo + read) nunca fallará.
    • La forma con -p es más cómoda y legible, y funciona normalmente en Linux actual.

Recomendación del curso

En este mini-tutorial usamos read -p porque:

  • simplifica el código
  • es más claro para principiantes
  • funciona correctamente en cualquier Bash moderno (el entorno esperado del alumno)

Pero si necesitas compatibilidad total con cualquier shell, usa la forma universal.


9.4. Añadir sustitución de comandos (5 minutos)

Vamos a mejorar el script datos.sh usando $(...)
para guardar la salida de un comando en una variable.

Edita el script como sigue y ejecuta:

#!/bin/bash

read -p "Introduce tu nombre: " nombre

# Guardar fecha y directorio en variables
fecha_actual="$(date)"
directorio="$(pwd)"

echo "Hola $nombre"
echo "Fecha actual: $fecha_actual"
echo "Directorio actual: $directorio"

9.5. Mini-reto opcional (5 minutos)

Modifica datos.sh para que:

  • pregunte el nombre
  • pregunte el nombre de un archivo o carpeta
  • muestre su contenido con:
ls -lh <lo_que_introdujo_el_usuario>

Este reto no usa condicionales (eso llega en el Día 2), así que si el usuario escribe algo inexistente verá un error real → y eso está bien para aprender.


10. Errores comunes del Día 1 (y cómo evitarlos)

ErrorSolución
bash: ./script.sh: Permission deniedFalta chmod +x script.sh
command not foundEl script no empieza con #!/bin/bash
Variables con espacios no funcionanNunca pongas espacios en variable=valor
./script.sh no funciona en WindowsBash no existe fuera de WSL / Linux / Mac

11. Checklist del Día 1

  • Has creado un archivo .sh
  • Has añadido el shebang correcto
  • Has dado permisos con chmod +x
  • Has ejecutado un script con ./script.sh
  • Has usado variables
  • Has pedido datos con read

Si has marcado todo → Día 1 superado.


12. Ejercicio sugerido

Crea un script llamado:

info.sh

Que:

  1. Te pida tu nombre
  2. Te pida tu edad
  3. Muestre un mensaje del tipo:
Hola Tomas, tienes 55 años.
Tu script funciona correctamente.

Esto prepara el terreno para condicionales del Día 2.


13. Día 1 completado

¡Ya estás escribiendo y ejecutando tus propios scripts!
A partir de aquí Bash se vuelve mucho más potente.

En el Día 2, aprenderás:

  • condicionales
  • comparaciones
  • test [ ]
  • if, elif, else
  • y el poderoso case

Todo lo necesario para que tus scripts tomen decisiones.

[Índice Bash Script]

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies