Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Sisällysluettelo:

Anonim

Tätä merkkijonoa ( #! ) Kutsutaan shebang- tiedoksi, ja sitä käytetään kertomaan käyttöjärjestelmälle, mitä tulkkia käytetään muun tiedoston jäsentämiseen.

Shebangin tulkkidirektiivi

Shebangin tulkkidirektiivi on seuraavassa muodossa:

#!interpreter

  • Direktiivin on oltava käsikirjoituksen ensimmäinen rivi. Direktiivin on alkaa shebang #! Valkoinen väli shebang-merkkien jälkeen on valinnainen. Tulkki on täydellinen polku binaaritiedostoon (esim.: /bin/sh , /bin/bash ). Tulkin argumentit ovat valinnaisia.

esimerkkejä:

  • #!/bin/bash - käyttää bash tiedostoa jäsentääksesi tiedostoa. #!/usr/bin/env perl - Käyttää env komentoa löytääksesi perl ohjelman suoritettavan ohjelman. #!/usr/bin/python Suorittaa tiedoston python binaarilla.

Shebangin käyttäminen Bash-komentosarjoissa

Jos shebangia ei ole määritetty ja Bash-komentosarjaa käyttävä käyttäjä käyttää toista Shellä, komentosarjan jäsentää mikä tahansa oletusetulkki, jota kyseinen Shell käyttää. Esimerkiksi bash oletuksen mukainen tulkki on bash ja zsh on sh . Jotta voidaan varmistaa, että skriptisi tulkitaan aina Bashin kanssa, sinun on määritettävä suoritettava polku shebangin avulla.

Shebang-direktiivissä ja tulkin asettamisessa on kaksi tapaa.

  1. Absoluuttisen polun käyttäminen bash-binaariin:

    #!/bin/bash

    env apuohjelman käyttäminen:

    #!/usr/bin/env bash

Toisen lähestymistavan käytön etuna on, että se etsii suoritettavissa olevaa bash tiedostoa käyttäjän $PATH -ympäristömuuttujasta. Jos bashiin on enemmän kuin yksi polku, skripti käyttää ensimmäistä polkua.

Kun käytät ensimmäistä vaihtoehtoa lisättäessä vaihtoehto Bash-kuorihuoltoon, välitä se tulkille. Esimerkiksi komennon suorittamiseksi debug-tilassa käyttäisit #!/bin/bash -x . Jos käytät env menetelmää, sinun on käytettävä set ilmoittamaan vaihtoehto. Voit lisätä debug-moodin lisäämällä set -x shebang-rivin jälkeen.

Esimerkki käsikirjoituksesta

Luomme shebangilla yksinkertainen skripti, joka tulostaa ”Hei, maailma”. Avaa tekstieditori ja liitä seuraava rivi:

nano hello_world Hei maailma

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

Jotta skripti voidaan suorittaa määrittämättä tulkkia komentoriviltä, ​​sinun on tehtävä tiedostosta suoritettava:

chmod +x hello_world

Nyt jos voit suorittaa komentosarjan kirjoittamalla ./ ja sen jälkeen komentosarjan nimi:

./hello_world

Hello, World

Shebangin ohittaminen

Jos jostain syystä haluat ohittaa Shebang-rivillä olevan tulkin, sinun on suoritettava komentosarja määrittelemällä nimenomaisesti haluttu kuori.

Voit suorittaa esimerkiksi komentosarjan, jonka Shebang-rivillä on määritetty #!/bin/sh käyttämällä kirjoittamaasi bash kuorta:

bash hello_world

Huomaa, että ei ole hyvä idea ohittaa komentotulkki, koska se voi johtaa komentosarjan odottamattomaan käyttäytymiseen.

johtopäätös

Tähän mennessä sinulla pitäisi olla hyvä käsitys siitä, mikä on Shebang ja kuinka sitä käytetään Bash-skripteissasi.

bash-terminaali