En este momento estás viendo Qué es el Shebang y como usarlo en sistemas GNU/Linux

Qué es el Shebang y como usarlo en sistemas GNU/Linux

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
Formato de shebang
Formato de shebang

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
Shell en ejecución en nuestro sistema
Shell en ejecución en nuestro sistema

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
Creación de un script
Creación de un script

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"
Código del script
Código del script

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
Salida de la ejecución del script
Salida de la ejecución del script

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.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.