¿Ya dominas lo básico? Un curso estructurado de shell scripting es la vía rápida para dar el salto.
Ver cursos de shell scripting en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primer guion (echo)
- 03Usar variables
- 04Argumentos de la línea de órdenes ($1, $2 ...)
- 05Condicionales (la sentencia if)
- 06Repetir (el bucle for)
- 07Repetir (el bucle while)
- 08Escribir tu propia función
- 09Trabajar con arrays
- 10Sustitución de comandos ($())
- 11Trabajar con texto (expansión de parámetros)
- 12Leer de la entrada estándar (read)
- 13Estado de salida y && / ||
- 14Tuberías y redirección
- 15La sentencia case
- 16Aritmética ($(( )))
- 17Lo básico de grep, sed y awk
- 18Comprobación de argumentos y manejo de errores
- 19Valores devueltos por funciones y códigos de salida
- 20[Proyecto] Construye un contador de registros
Estado de salida y && / ||
En esta lección encadenarás comandos de forma que el siguiente dependa de si el anterior salió bien.
Todo comando devuelve un estado de salida: 0 si fue bien y otro número si falló. A && B ejecuta B solo si A salió bien, y A || B ejecuta B solo si A falló.
El código de ejemplo encadena dos mensajes: el segundo aparece porque el primero terminó correctamente.
Lo que hay que grabarse es que 0 significa éxito, al revés de lo habitual en programación, donde 0 suele ser «falso». Viene de que solo hay una forma de que algo salga bien y muchas de que falle, así que los demás números se reservan para distinguir los tipos de error.
De ahí sale una fórmula que verás por todas partes: comando || { echo "falló" >&2; exit 1; }, que aborta el guion en cuanto algo va mal. Otra costumbre muy extendida es empezar los guiones con set -euo pipefail, que hace que el guion se detenga solo ante el primer error en lugar de seguir adelante causando estropicios.
🧪 Este sitio no puede compilar ni ejecutar Shell Script directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
