Si estás empezando con los scripts de Linux y leyendo tus primeros scripts, probablemente en Bash, habrás notado que la primera línea del script siempre comienza con “#!
” seguido de la ruta al intérprete de scripts, por ejemplo Bash.
De hecho, la secuencia de caracteres “#!” se denomina Shebang. Sirve para indicar al sistema qué intérprete de scripts debe utilizar para ejecutar el código contenido en el archivo. Este valor no corresponde necesariamente a Bash, todo depende del script. Este es un buen indicador para que un script funcione correctamente ejecutándolo con el binario correcto.
La Sintaxis del Shebang
Si tuviéramos que codificar el Shebang, nos daría la siguiente sintaxis:
#!<ruta-al-intérprete>
Para un script de Bash, el shebang a incluir será la ruta al binario de bash, a saber:
#!/bin/bash
En el mismo estilo, para ejecutar un script utilizando el binario de Python, se utilizará:
#!/usr/bin/python
Siempre con la misma lógica: en la primera línea del script. Por otro lado, si creas un script y no especificas el Shebang en el encabezado, el sistema lo ejecutará con el intérprete predeterminado asociado al Shell del usuario que inicia el script.
Utilizar la Variable de Entorno
Ahora, veremos una forma más sencilla de definir el Shebang sin especificar la ruta completa al intérprete. Utilizaremos la variable de entorno $PATH
para buscar la ruta al binario del intérprete especificado, por ejemplo:
#!/usr/bin/env bash
Si hay varias rutas asociadas, simplemente se utilizará la primera.
IV. Anular el shebang
Si tu script contiene un shebang pero deseas ejecutarlo con un intérprete diferente al especificado, es posible. De hecho, solo basta con ejecutar el binario seguido del nombre del script a llamar.
Por ejemplo:
bash mi-script.sh
El comando anterior ejecutará el script “mi-script.sh
” con el intérprete bash incluso si el shebang especifica otra cosa.
Ya ves, ahora sabes qué es el shebang. Si decides crear un primer script para probar, recuerda agregar los permisos de ejecución en el archivo para que pueda ejecutarse. Esto se hace de esta manera:
chmod +x mi-script.sh
Ejemplos de Uso de Shebang en Otros Lenguajes
- Ruby:
#!/usr/bin/ruby
puts "Hola, mundo desde Ruby!"
- Node.js
#!/usr/bin/node
console.log("Hola, mundo desde Node.js!");
Finalmente, recuerda:
- Si el script no está destinado a ser ejecutado directamente (por ejemplo, es un módulo que será importado por otros scripts), no necesitas un shebang.
- En sistemas no Unix (como Windows), el shebang no tiene efecto. Sin embargo, incluirlo no causará problemas y puede ser útil para portabilidad.
El shebang es una herramienta poderosa y simple para hacer que tus scripts sean más portátiles y fáciles de usar en sistemas Unix y similares.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.