Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Cuprins:

Anonim

Această secvență de caractere ( #! ) Se numește shebang și este utilizată pentru a spune sistemului de operare ce interpret să folosească pentru a analiza restul fișierului.

Directiva de interpretare Shebang

Directiva interpretului Shebang are următoarea formă:

#!interpreter

  • Directiva trebuie să fie prima linie din script. Directiva trebuie să înceapă cu shebang #! Spațiul alb după caracterele shebang este opțional.Interpreter este calea completă către un fișier binar (ex: /bin/sh , /bin/bash ). Argumentele de interpretare sunt opționale.

Exemple:

  • #!/bin/bash - Utilizează bash pentru a analiza fișierul. #!/usr/bin/env perl - Utilizează comanda env pentru a găsi calea către executabilul perl . #!/usr/bin/python Execută fișierul folosind binarul python .

Folosirea Shebang în Scripturile Bash

Dacă un shebang nu este specificat și utilizatorul care rulează scriptul Bash folosește un alt Shell, scriptul va fi analizat de orice interprete implicite este folosit de respectivul Shell. De exemplu, interpretul implicit pentru bash este bash și pentru zsh este sh . Pentru a vă asigura că scriptul dvs. va fi întotdeauna interpretat cu Bash, va trebui să specificați calea executabilă folosind shebang.

Există două modalități de a utiliza directiva Shebang și de a seta interpretul.

  1. Folosind calea absolută către binarul bash:

    #!/bin/bash

    Folosind utilitarul env :

    #!/usr/bin/env bash

Avantajul utilizării celei de-a doua abordări este că va căuta executarea bash în $PATH mediu $PATH utilizatorului. Dacă există mai multe căi de bash , prima va fi folosită de script.

Când utilizați prima opțiune pentru a adăuga o opțiune la furnizarea de coajă Bash, transmiteți-o interpretului. De exemplu, pentru a rula scriptul într-un mod de depanare, ați utiliza #!/bin/bash -x . Dacă utilizați metoda env , atunci trebuie să utilizați set pentru a declara opțiunea. Pentru a activa modul de depanare, adăugați set -x după linia de shebang.

Script de exemplu

Să creăm un script simplu folosind shebang care va imprima „Hello, World”. Deschideți editorul de text și lipiți următoarea linie:

nano hello_world Salut Lume

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

Pentru a putea rula scriptul fără a specifica interpretul din linia de comandă, va trebui să faceți fișierul executabil:

chmod +x hello_world

Acum, dacă puteți rula scriptul tastând ./ urmată de numele scriptului:

./hello_world

Hello, World

Suprapunerea Shebang-ului

Dacă din anumite motive doriți să înlocuiți setul de interprete din linia Shebang, trebuie să rulați scriptul specificând explicit shell-ul dorit.

De exemplu, pentru a rula un script care are #!/bin/sh specificat în linia Shebang folosind bash ul bash care l-ați tipat:

bash hello_world

Vă rugăm să rețineți, nu este o idee bună să înlocuiți interpretul shell deoarece poate duce la un comportament neașteptat al scriptului.

Concluzie

Până acum, ar trebui să înțelegeți bine ce este Shebang și cum să îl utilizați în scripturile dvs. Bash.

terminalul bash