Linux · Sección 14

Bash: fundamentos de scripting

Shebang, permisos, argumentos, variables, quoting, arrays, condiciones, bucles, funciones y códigos de salida con contratos claros.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas comandos, flujos y estados de salida. La sección construye programación Bash desde el primer script.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Scripts y argumentos con Variables y quoting y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Prepara una máquina virtual Linux con red NAT e instantáneas, o WSL para las prácticas que no requieren kernel y systemd completos.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Scripts y argumentos y Variables y quoting? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Construirás scripts con contratos claros: shebang, argumentos, variables, condiciones, bucles, funciones y estados de salida.

Al terminar podrás
  • El shebang elige intérprete; los permisos autorizan la ejecución
  • Las comillas preservan los límites entre argumentos
  • Condiciones comprueban estados; funciones encapsulan capacidades
01
Programa ejecutable

El shebang elige intérprete; los permisos autorizan la ejecución

Al ejecutar ./script.sh, el kernel consulta el shebang para localizar el intérprete. bash script.sh ignora el bit ejecutable y llama Bash explícitamente. La extensión .sh es una convención; la sintaxis real depende del intérprete declarado.

01

#!/usr/bin/env bash busca bash en PATH.

02

bash -n revisa sintaxis sin ejecutar.

03

El script debe documentar entradas, salida y dependencias.

Comprueba lo aprendido · 01

¿Qué diferencia práctica hay entre ./script.sh y bash script.sh?

Mostrar respuesta +

./script.sh requiere permiso de ejecución y usa el intérprete del shebang; bash script.sh invoca Bash explícitamente y solo necesita poder leer el archivo.

02
Datos de shell

Las comillas preservan los límites entre argumentos

Bash expande parámetros, sustituciones y patrones antes de ejecutar. Una expansión sin comillas puede dividirse por IFS y expandir comodines. Usa "$variable", "$@" y arrays para conservar cada dato como un argumento; no guardes una orden completa en una cadena esperando que las comillas interiores se vuelvan sintaxis.

01

$# cuenta argumentos; $1 y siguientes acceden a ellos.

02

"$@" conserva cada argumento por separado.

03

Arrays modelan listas de argumentos de Bash.

Comprueba lo aprendido · 02

¿Por qué for x in $@ es frágil?

Mostrar respuesta +

Porque vuelve a dividir y expandir cada argumento; un nombre con espacios o comodines deja de conservar su identidad. Debe usarse "$@".

03
Flujo y funciones

Condiciones comprueban estados; funciones encapsulan capacidades

if decide según el código de salida de una orden. [[ ]] ofrece pruebas seguras propias de Bash; (( )) evalúa aritmética entera. Los bucles deben progresar hacia un término. Una función usa local para evitar colisiones y return comunica un estado de 0 a 255; los datos pueden viajar por stdout.

01

Éxito es 0; otros valores representan clases de fallo.

02

case expresa alternativas discretas con claridad.

03

No uses la salida textual como sustituto del estado cuando ambos importan.

Comprueba lo aprendido · 03

¿Qué evalúa realmente if comando; then en Bash?

Mostrar respuesta +

Evalúa el código de salida del comando: entra en then cuando es 0 y en else cuando es distinto de cero.

Resumen de la sección

Tu recorrido en tres ideas

  1. El shebang elige intérprete; los permisos autorizan la ejecución
  2. Las comillas preservan los límites entre argumentos
  3. Condiciones comprueban estados; funciones encapsulan capacidades
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Usar expansiones sin comillas para rutas o argumentos.

ERROR 02

Confundir el texto impreso por una orden con su código de salida.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Crea una utilidad que reciba varias rutas, valide opciones y entregue cantidad, tamaño y estado sin romper nombres extraños.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Conserva "$@" y usa arrays cuando corresponde.
  • Separa salida y diagnóstico.
  • Devuelve estados distintos para uso incorrecto y fallo operativo.