androide

Bash Shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Sommario:

Anonim

Questa sequenza di caratteri ( #! ) Si chiama shebang e viene utilizzata per indicare al sistema operativo quale interprete utilizzare per analizzare il resto del file.

Direttiva sull'interprete di Shebang

La direttiva sull'interprete Shebang ha la seguente forma:

#!interpreter

  • La direttiva deve essere la prima riga dello script. La direttiva deve iniziare con shebang #! Lo spazio bianco dopo i caratteri shebang è facoltativo. L'interprete è il percorso completo di un file binario (es: /bin/sh , /bin/bash ). Gli argomenti dell'interprete sono opzionali.

Esempi:

  • #!/bin/bash - Usa bash per analizzare il file. #!/usr/bin/env perl - Usa il comando env per trovare il percorso dell'eseguibile perl . #!/usr/bin/python Esegue il file usando il binario python .

Utilizzo di Shebang negli script Bash

Se non viene specificato uno shebang e l'utente che esegue lo script Bash utilizza un'altra shell, lo script verrà analizzato da qualunque interprete predefinito venga utilizzato da quella shell. Ad esempio, l'interprete predefinito per bash è bash e per zsh è sh . Per assicurarti che il tuo script venga sempre interpretato con Bash dovrai specificare il percorso eseguibile usando shebang.

Esistono due modi per utilizzare la direttiva Shebang e impostare l'interprete.

  1. Usando il percorso assoluto del binario bash:

    #!/bin/bash

    Utilizzando l'utilità env :

    #!/usr/bin/env bash

Il vantaggio di usare il secondo approccio è che cercherà l'eseguibile bash nella variabile ambientale $PATH dell'utente. Se ci sono più percorsi per bash , il primo verrà utilizzato dallo script.

Quando si utilizza la prima opzione per aggiungere un'opzione alla fornitura della shell Bash, passarla all'interprete. Ad esempio, per eseguire lo script in una modalità di debug dovresti usare #!/bin/bash -x . Se si utilizza il metodo env , è necessario utilizzare set per dichiarare l'opzione. Per abilitare la modalità debug aggiungere set -x dopo la riga shebang.

Script di esempio

Creiamo una semplice sceneggiatura usando shebang che stamperà "Hello, World". Apri il tuo editor di testo e incolla la seguente riga:

nano hello_world Ciao mondo

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

Per poter eseguire lo script senza specificare l'interprete dalla riga di comando, è necessario rendere eseguibile il file:

chmod +x hello_world

Ora se puoi eseguire lo script digitando ./ seguito dal nome dello script:

./hello_world

Hello, World

Sovrascrivere Shebang

Se per qualche motivo vuoi sovrascrivere l'interprete impostato nella riga Shebang devi eseguire lo script specificando esplicitamente la shell desiderata.

Ad esempio, per eseguire uno script con #!/bin/sh specificato nella riga Shebang usando la shell bash , digitare:

bash hello_world

Nota: non è una buona idea sovrascrivere l'interprete della shell in quanto potrebbe comportare un comportamento imprevisto dello script.

Conclusione

Ormai dovresti avere una buona conoscenza di cosa sia Shebang e di come usarlo nei tuoi script Bash.

bash terminal