Qué es el Shebang y como usarlo en Linux
En este artículo vamos a ver qué es y como se usa el «shebang» en «shell scripting». También veremos los diferentes interpretes de comandos que empleamos en sistemas GNU/Linux.
Sumario
- Qué es el «shebang»
- Tipos de intérprete
- Uso del «shebang»
- Conclusión
Shebang es el nombre de una expresión compuesta por un conjunto de caracteres, una almohadilla y un final de exclamación «#!», que encontramos al inicio de los programas ejecutables interpretados, para indicar al sistema a qué intérprete de comandos se debe llamar.
A continuación de estos caracteres se introduce la ruta absoluta al intérprete de comandos que debe leer el código siguiente. El intérprete de comandos, también llamado «shell», es una herramienta del sistema operativo, que se encarga de leer las órdenes introducidas en la linea de comandos «CLI» en los sistemas UNIX.
Tipos de intérprete
En la mayoría de los sistemas operativos más comunes, tienes instalado «bash», en la ruta «/bin/bash», pero existen otras opciones como por ejemplo Fsh, Zsh o Ksh. Si quieres conocer que «shell» utiliza tu sistema ejecuta
echo $SHELL
Pero hay más. Los principales que encontraremos son:
- #!/bin/bash -> Ejecutar el fichero usando el shell «Bash»
- #!/bin/zsh -> Ejecutar el fichero usando el shell «Z shell»
- #!/bin/tcsh -> Ejecutar el fichero usando el shell «tcsh»
- #!/bin/csh -> Ejecutar el fichero usando el shell «C Shell»
- #!/usr/bin/perl -> Ejecutar el fichero usando el lenguaje «perl»
Uso del «shebang»
Cuando creamos un script, lo iniciamos siempre con el «shebang» para indicar qué interprete de comandos debe usar en su ejecución.
Implementar el indicador del shell es muy sencillo. Como hemos visto, en la primera línea del script incluiremos los caracteres «#!» y la ruta absoluta al directorio que contiene el intérprete.
Lo vemos con un ejemplo. Creamos un script sh sencillo que ejecutará un banner con el texto weblinus.
Con el editor que quieras, yo usaré nano, lo creamos
sudo nano bienvenida.sh
En la primera línea introducimos el indicador de intérprete o «Shebang».
#!/bin/bash
Y a continuación el código del script. En mi caso…
#!/bin/bash echo " Bienvenido a..." banner "weblinus" echo " tu web de GNU/Linux"
Guardamos el fichero y cerramos el editor. Ejecutamos el script, con
sudo bash bienvenida.sh
O le damos permisos de ejecución
chmod +x bienvenida.sh
y lo ejecutamos con
./bienvenida.sh
Este último modo nos permitirá incluir la ejecución de este script en una tarea cron o en otro script.
Conclusión
En la administración de sistemas, el «shebang», nos facilita el trabajo, permitiéndonos la elección del intérprete o incluso el lenguaje a ejecutar en el contenido de los ficheros, como pueden ser «perl» o «Phython».
Por ejemplo, si quieres utilizar «Python3» tendrás que incluir en tu script
#!/usr/bin/python3
Con la ruta al ejecutable python localizado en /usr/bin
También puedes usar «env» para buscar la variable de entorno «python» en el PATH y ejecutar el script con ese programa.
#!/usr/bin/env python3
NOTA: MS Windows no tiene soporte nativo para «shebang», usa la extensión del archivo para asociarlo al ejecutable de turno con «.exe» generalmente. Por lo tanto, la linea de «shebang» será ignorada por defecto en el caso de MS Windows.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.