Hasta ahora has escrito comandos uno a uno en la terminal. Funciona, pero ¿qué pasa si necesitas ejecutar los mismos 10 comandos todos los días? ¿Los escribes cada vez?
No. Los guardas en un script — un archivo de texto con una secuencia de comandos que se ejecutan automáticamente. Es tu primer paso hacia la automatización.
Un script es simplemente un archivo de texto con comandos, uno por línea. La convención es usar la extensión .sh:
Si guardas esto en mi_script.sh, puedes ejecutarlo con:
Los tres comandos se ejecutan en secuencia, como si los hubieras escrito uno a uno.
Las variables almacenan valores que puedes reutilizar:
Reglas importantes:
=: NOMBRE="valor" (correcto) vs NOMBRE = "valor" (error)$: $NOMBRE$NOMBRE se expanda. Las comillas simples no: '$NOMBRE' muestra literalmente $NOMBRECuando ejecutas un script, puedes pasarle datos:
Dentro del script, accedes a estos argumentos con variables especiales:
$0 — el nombre del propio script$1 — primer argumento$2 — segundo argumento$@ — todos los argumentos$# — cuántos argumentos se pasaronPor ejemplo:
Si ejecutas sh script.sh Ana 25, imprime: "Hola, Ana! Tienes 25 años."
En una terminal real de Linux, $0 es el nombre del script y $1 es el primer argumento. Sin embargo, en el editor de codeaventura, los argumentos están desplazados en una posición:
| Variable | Terminal real | Editor de codeaventura |
|---|---|---|
$0 | saludo.sh (nombre del script) | /bin/sh (el intérprete) |
$1 | manu (primer argumento) | saludo.sh (nombre del script) |
$2 | — | manu (primer argumento) |
Esto ocurre porque no estás usando un Linux real, hemos montado para ti un entorno simulado en el navegador llamado jsh.
Es lo suficientemente parecido a un Linux para poder enseñarte todo lo necesario, pero tiene
algunas pequeñas diferencias como esta.
No te preocupes: el comportamiento estándar es el que hemos explicado arriba ($1 = primer argumento), y es el que encontrarás en cualquier sistema Linux real. Simplemente tenlo en cuenta al probar en el editor.
Las líneas que empiezan con # son comentarios — no se ejecutan:
Los comentarios son para tu yo del futuro. Úsalos para explicar el porqué, no el qué.
Crea un script saludo.sh que:
$1 en una terminal real, $2 en nuestro editor)"Hola, [nombre]!"Escríbelo en el editor y ejecútalo con sh saludo.sh TuNombre en la terminal.