Pregunta 1¿Qué indica el #!/bin/sh de la primera línea de un script de shell?
Tu primer script de shell — crearlo y ejecutarlo
Crea un script de shell en vi, añade #!/bin/sh, hazlo ejecutable con chmod +x y ejecútalo con ./hello.sh. Ilustrado y practicado en tu navegador.
Crear un script — vi y #!/bin/sh
Un script de shell agrupa en un archivo los comandos que normalmente escribirías en la terminal, para que puedas ejecutarlos todos de una vez.
En lugar de teclear a mano un conjunto fijo de pasos cada vez, los escribes en un archivo y puedes repetir el mismo trabajo con precisión tantas veces como quieras.
Aquí aprenderás lo básico para crear y ejecutar un script de shell.
Abre el archivo con vi hello.sh, pulsa i para entrar en modo inserción y escribe el cuerpo, luego pulsa Esc y guarda y cierra con :wq (las operaciones básicas de vi son las mismas que aprendiste la última vez).
Haz que la primera línea sea #!/bin/sh, un shebang, que indica qué shell ejecuta el script.
Las líneas que empiezan por # se ignoran al ejecutar, como comentarios.
La única excepción es la primera línea: aunque #!/... empiece por #, no es un comentario — se interpreta de forma especial como la directiva que indica qué shell ejecutar.
vi hello.sh da -rw-r--r-- (sin x); chmod +x lo cambia a -rwxr-xr-x (con x), y ./hello.sh lo ejecuta. El centro muestra la comprobación con ls -l.| Sintaxis | Significado | Ejemplo |
|---|---|---|
vi f | Abrir un archivo en el editor (lo crea si no existe) | vi hello.sh |
i … Esc | Escribir el cuerpo en modo inserción, Esc vuelve al modo normal | Pulsa i … Esc |
:wq | Guardar y salir de vi | :wq |
#!/bin/sh | El shebang en la primera línea (indica la shell a ejecutar) | #!/bin/sh |
# comentario | Una línea explicativa ignorada al ejecutar | # create backup |
chmod +x f | Añadir permiso de ejecución a un archivo | chmod +x hello.sh |
./f | Ejecutar el script en el directorio actual | ./hello.sh |
>> f | Añadir al final de un archivo (sin sobrescribir) | date >> run.log |
vi note.sh # abre el script en el editor
# pulsa i para entrar en modo inserción y escribe:
# #!/bin/sh
# # show a short message
# echo "build step 1"
# echo "build step 2"
# pulsa Esc y guarda y sal con :wq
chmod +x note.sh # añade permiso de ejecución
./note.sh # imprime build step 1 / build step 2
Ejecutarlo — chmod +x y ./
Un archivo que acabas de crear no se puede ejecutar tal cual.
Una vez que añades permiso de ejecución con chmod +x file, puedes ejecutarlo en la forma ./file.
./ es la manera de referirse a un archivo en el directorio actual; sin él, la shell solo busca el comando dentro de PATH y no lo encuentra.
vi greet.sh # abre en el editor, escribe #!/bin/sh y echo hi, guarda con :wq
ls -l greet.sh # aún sin permiso de ejecución
chmod +x greet.sh # añade permiso de ejecución
ls -l greet.sh # aparece una x en el borde izquierdo
./greet.sh # imprime hi
También hay una forma de ejecutarlo sin permiso de ejecución
Cuando quieras ejecutarlo sin añadir permiso de ejecución, también hay una forma de entregar el archivo a una shell, como sh file.
En este curso usamos la forma básica de añadir permiso de ejecución y ejecutar con ./file.
Puedes comprobar si se añadió el permiso de ejecución según aparezca una x en el borde izquierdo de ls -l.
Construir una pequeña herramienta que registra las ejecuciones
El flujo de crear, dar permiso y ejecutar que aprendiste puede usarse directamente en pequeñas herramientas del mundo real.
Aquí vas a construir una herramienta de registro que añade "cuándo se ejecutó el script" a un único archivo de log.
Cuando añades con >>, las líneas se acumulan cada vez que lo ejecutas, así que puedes revisar después el historial de ejecución.
date >> run.log y la visualización de cat run.log, y cada repetición acumula otra línea en run.log.Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué comando añade permiso de ejecución a un script que creaste?
Pregunta 3¿Cuál es la forma de ejecutar hello.sh en el directorio actual?