Qué es Bash Shebang en Linux

27 feb 2021 2 min di lettura
Qué es Bash Shebang en Linux
Indice dei contenuti

Introducción

Si está aprendiendo scripts de Bash leyendo el código de otras personas, es posible que haya notado que la primera línea de los scripts comienza con #! y el camino del intérprete de Bash.

Esta secuencia de caracteres ( #! ) Se llama shebang y se utiliza para indicarle al sistema operativo qué intérprete utilizar para analizar el resto del archivo.

Directiva de intérprete de Shebang

La directiva de intérpretes de Shebang tiene la siguiente forma:

#!interpreter [arguments]
  • La directiva debe ser la primera línea del guión.
  • ¡La directiva debe comenzar con Shebang #!.
  • El espacio en blanco después del carácter shebang es opcional.
  • El intérprete es la ruta completa de un archivo binario (por ejemplo: /bin /sh, /bin /bash ).
  • Los argumentos del intérprete son opcionales.

Ejemplos:

  • ! /bin /bash: utiliza bash para analizar el archivo.
  • ! /usr /bin /env perl: use el comando env para encontrar la ruta al ejecutable de perl.
  • ! /usr /bin /python: ejecuta el archivo utilizando el binario de python.

Usando Shebang en scripts Bash

Si no se especifica un shebang y el usuario que ejecuta el script Bash usa otro shell, el script será analizado por cualquier intérprete predeterminado que use ese shell. Por ejemplo, el intérprete predeterminado para bash es bash y para zsh es sh. Para asegurarse de que su script siempre se interprete con Bash, deberá especificar la ruta ejecutable usando shebang.

Hay dos formas de utilizar la directiva Shebang y configurar el intérprete.

Usando la ruta absoluta del binario bash:

#!/bin/bash

Usando la utilidad env:

#!/usr/bin/env bash

La ventaja de usar el segundo enfoque es que buscará el ejecutable bash en la variable ambiental $ PATH del usuario. Si hay varias rutas de bash, el script utilizará la primera.

Cuando use la primera opción para agregar un indicador a la sintaxis del shell Bash, páselo al intérprete. Por ejemplo, para ejecutar el script en modo de depuración, use ! /Bin /bash -x. Si está usando el método env, debe usar set para declarar la opción. Para habilitar el modo de depuración, agregue set -x después de la línea shebang.

Script de ejemplo

Creemos un script simple usando shebang que imprimirá " Hello, World ".

Abra su editor de texto y pegue la siguiente línea:

nano hello_world
#!/bin/bash

 echo "Hello, World"

Para ejecutar el script sin especificar el intérprete desde la línea de comando, debe hacer que el archivo sea ejecutable:

chmod +x hello_world

Ahora puede ejecutar el script escribiendo ./ seguido del nombre del script:

./hello_world
Hello, World

Sobrescribir Shebang

Si por alguna razón desea anular el conjunto de intérpretes en la línea Shebang, debe ejecutar el script especificando explícitamente el shell deseado.

Por ejemplo, para ejecutar un script que especifique ! /Bin /sh en la línea Shebang usando el shell bash, escriba:

bash hello_world

Nota: No es una buena idea anular el intérprete de shell, ya que puede provocar un comportamiento inesperado del script.

Conclusión

A estas alturas, debería tener una buena comprensión de qué es Shebang y cómo usarlo en sus scripts Bash.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.