CMD Master
Volver al blog
•Actualizado•Arnošt Havelka

Cómo escribir y ejecutar tu primer script de Bash

Crea un script de Bash, comprueba su sintaxis, hazlo ejecutable y entiende la diferencia entre bash script.sh y ./script.sh.

Iniciar lección interactiva
Cómo escribir y ejecutar tu primer script de Bash

Un script de Bash es un archivo de texto que contiene comandos que Bash ejecuta en orden. Para crear el primero, guarda una línea shebang y un comando en script.sh, comprueba el archivo, concede permiso de ejecución y ejecútalo con ./script.sh. También puedes usar bash script.sh al diagnosticar problemas de ejecución o permisos. La lección sobre el primer script recorre el mismo flujo de trabajo en un entorno preparado.

Guarda una línea shebang y un comando visible

Crea script.sh en un editor de texto con estas dos líneas:

#!/usr/bin/env bash
printf '%s\n' 'Hello World'

La línea shebang indica al sistema operativo que busque bash en la ruta de búsqueda de comandos actual cuando se ejecute el archivo directamente. #!/bin/bash también es habitual cuando se sabe que Bash se encuentra en esa ruta exacta. Elige una opción de forma consciente en lugar de suponer que todas las máquinas instalan Bash en el mismo lugar.

Inspecciona el archivo guardado:

cat script.sh

Así puedes detectar un archivo vacío, un nombre incorrecto o contenido guardado en otro directorio. Si el script procede de Windows, comprueba que el editor haya usado finales de línea LF de Unix. Un retorno de carro oculto puede causar un error «bad interpreter» aunque la línea shebang parezca correcta en pantalla.

Comprueba la sintaxis antes de ejecutar

Pide a Bash que analice el archivo sin ejecutar sus comandos:

bash -n script.sh

Si no aparece ninguna salida, Bash no ha encontrado errores de sintaxis. Esto no demuestra que las rutas existan, que los permisos sean correctos ni que los comandos produzcan el resultado esperado; solo comprueba el análisis sintáctico.

Haz que el script sea ejecutable

Concede permiso de ejecución al propietario del archivo:

chmod u+x script.sh

Comprueba el permiso:

ls -l script.sh

El grupo de tres caracteres de permisos del propietario debe incluir ahora x. chmod cambia el modo del archivo; no inspecciona ni repara su contenido.

Entiende las dos formas habituales de ejecutarlo

Ejecuta el archivo desde el directorio actual con:

./script.sh

El prefijo ./ proporciona una ruta. La mayoría de los shells no buscan automáticamente en el directorio actual, por lo que escribir solo script.sh puede mostrar «command not found» aunque el archivo exista.

Como alternativa, pide a Bash que lea el archivo de forma explícita:

bash script.sh

Esta forma necesita un archivo legible, pero no su bit de ejecución, y Bash procesa el contenido independientemente de la línea shebang. Por eso resulta útil para distinguir entre «Bash no puede leer o analizar este archivo» y «el sistema operativo no puede iniciar este archivo ejecutable».

Diagnostica el mensaje que realmente recibes

  • No such file or directory: usa pwd y ls para confirmar tu ubicación y el nombre del archivo.
  • Permission denied: inspecciona el bit de ejecución, el propietario del archivo, los permisos del directorio y las opciones de montaje.
  • Bad interpreter: comprueba la ruta de la línea shebang y los finales de línea.
  • Syntax error: ejecuta bash -n script.sh y revisa la línea indicada, así como las comillas o palabras de control cercanas.
  • Salida inesperada: ejecuta cada comando manualmente con las mismas entradas antes de añadir más lógica al script.

Cuando este ciclo de guardar, comprobar y ejecutar resulte predecible, continúa con variables de Bash, funciones o el ejemplo de script de copia de seguridad más seguro. La referencia de scripts de shell de GNU Bash explica con más detalle la selección del intérprete y la ejecución de scripts.

Referencias

Estos enlaces de documentación aportan detalles confiables sobre los comandos usados en este artículo.

Siguiente

Cómo escribir un script Bash de copia más seguro con tar

Crea un backup Bash que valide el origen, evite sobrescrituras, elimine archivos parciales y compruebe el archivo tar.