Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Innholdsfortegnelse:

Anonim

Denne sekvensen med tegn ( #! ) Kalles shebang og brukes til å fortelle operativsystemet hvilken tolk som skal brukes for å analysere resten av filen.

Shebang tolkningsdirektiv

Direktivet om Shebang-tolk har følgende form:

#!interpreter

  • Direktivet må være den første linjen i manuset. Direktivet må starte med shebang #! Hvitt mellomrom etter shebang-tegnene er valgfritt. Tolk er den fullstendige banen til en binær fil (eks: /bin/sh , /bin/bash ). Tolkets argumenter er valgfrie.

eksempler:

  • #!/bin/bash - Bruker bash å analysere filen. #!/usr/bin/env perl - Bruker env kommandoen for å finne banen til perl kjørbar. #!/usr/bin/python Utfører filen ved bruk av python binæren.

Bruke Shebang i Bash-skript

Hvis en shebang ikke er spesifisert og brukeren som kjører Bash-skriptet, bruker et annet Shell, blir skriptet analysert av hva som helst standardtolk som brukes av det Shell. For eksempel er standardtolken for bash bash og for zsh er sh . For å sikre at skriptet ditt alltid vil bli tolket med Bash, må du spesifisere den kjørbare banen ved å bruke shebang.

Det er to måter å bruke Shebang-direktivet og sette tolk på.

  1. Bruker den absolutte banen til bash-binæren:

    #!/bin/bash

    Bruke env verktøyet:

    #!/usr/bin/env bash

Fordelen med å bruke den andre tilnærmingen er at den vil søke etter den kjørbare bash i brukerens $PATH miljøvariabel. Hvis det er mer enn en sti å bash , vil den første brukes av skriptet.

Når du bruker det første alternativet for å legge til et alternativ til Bash-skallforsyningen, send det til tolken. For å kjøre skriptet i en feilsøkingsmodus vil du for eksempel bruke #!/bin/bash -x . Hvis du bruker env metoden, må du bruke set å erklære alternativet. For å aktivere feilsøkingsmodus vil du legge til set -x etter shebang-linjen.

Eksempel manus

La oss lage et enkelt manus ved å bruke shebang som vil trykke "Hallo, Verden". Åpne teksteditoren din og lim inn følgende linje:

nano hello_world Hei Verden

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

For å kunne kjøre skriptet uten å spesifisere tolk fra kommandolinjen, må du gjøre filen kjørbar:

chmod +x hello_world

Hvis du nå kan kjøre skriptet ved å skrive ./ fulgt av skriptnavnet:

./hello_world

Hello, World

Overstyrer Shebang

Hvis du av en eller annen grunn vil overstyre tolkesettet i Shebang-linjen, må du kjøre skriptet ved å spesifisere det ønskede skallet.

For eksempel å kjøre et skript som har #!/bin/sh spesifisert i Shebang-linjen ved å bruke bash skallet du skriver:

bash hello_world

Vær oppmerksom på at det ikke er lurt å overstyre skalletolkeren, da det kan føre til uventet oppførsel av skriptet.

Konklusjon

Nå skal du ha en god forståelse av hva som er Shebang og hvordan du bruker det i Bash-skriptene dine.

bash terminal