Androide

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Tabla de contenido:

Anonim

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

Directiva de intérpretes de Shebang

La directiva del intérprete Shebang toma la siguiente forma:

#!interpreter

  • La directiva debe ser la primera línea del script. ¡La directiva debe comenzar con shebang #! El espacio en blanco después de los caracteres shebang es opcional. El intérprete es la ruta completa a un archivo binario (por ejemplo: /bin/sh , /bin/bash ). Los argumentos de interpretación son opcionales.

Ejemplos:

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

Usando Shebang en secuencias de comandos Bash

Si no se especifica un shebang y el usuario que ejecuta el script Bash está utilizando otro Shell, el script será analizado por el intérprete predeterminado que ese Shell utilice. Por ejemplo, el intérprete predeterminado para bash es bash y para zsh es sh . Para asegurarse de que su script siempre se interpretará con Bash, deberá especificar la ruta ejecutable mediante shebang.

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

  1. Usando la ruta absoluta al 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 $PATH entorno $PATH del usuario. Si hay más de una ruta a bash , la primera será utilizada por el script.

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

Script de ejemplo

Creemos un script simple usando shebang que imprima "Hello, World". Abra su editor de texto y pegue la siguiente línea:

nano hello_world Hola Mundo

#!/bin/bash echo "Hello, World"

Para poder ejecutar el script sin especificar el intérprete desde la línea de comandos, deberá hacer que el archivo sea ejecutable:

chmod +x hello_world

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

./hello_world

Hello, World

Anulando el 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 tenga #!/bin/sh especificado en la línea Shebang utilizando el shell bash , escriba:

bash hello_world

Tenga en cuenta que 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 ya debe tener una buena comprensión de qué es Shebang y cómo usarlo en sus scripts de Bash.

terminal de bash