30Jul
Ko ustvarjate nov skript lupine, se želite prepričati, da je to čimveč problem, čeprav je morda nekoliko zmedeno, če želite vedeti, katera je najboljša za uporabo. V zvezi s tem je današnja delovna objava Q & SuperUser odgovorila na zmedeno vprašanje bralca.
Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno mesto Q & A spletnih strani.
Vprašanje
SuperUser bralnik Hendre želi vedeti, kdaj je bolje uporabiti #!/bin/ bash namesto #!/bin/ sh v lupinskih skriptah:
Kdaj je bolj primerno uporabljati #!/bin/ bash namesto #!/bin/ sh v skripti lupine?
Kdaj je bolje uporabiti #!/bin/ bash namesto #!/bin/ sh v skripti lupine?
Odgovor za nas
SuperUser odgovor na nas:
Na kratko:
- Obstaja več lupin, ki izvajajo nadgradnjo specifikacije POSIX sh. Na različnih sistemih je /bin/ sh lahko povezava z ash, bash, dash, ksh, zsh itd. Vedno bo združljiva s sh-kompatibilnimi, nikoli ne csh ali ribami.
- Dokler se držite samo funkcij sh, lahko( in verjetno celo naj) uporabite #!/bin/ sh in scenarij mora delovati v redu, ne glede na to, katera je lupina.
- Če začnete uporabljati osnovne funkcije( npr. Polja), morate posebej zahtevati bash, ker se, čeprav /bin/ sh že v vašem sistemu že pokliče bash, morda ne bo na vseh drugih sistemih in vaš skript se ne bo tam zagnal. Enako velja za zsh in ksh, seveda.
- Tudi če je skript samo za osebno uporabo, boste morda opazili, da nekateri operacijski sistemi med nadgradnjami spreminjajo /bin/ sh .Na primer, na Debianu je bil včasih težak, vendar je bil pozneje nadomeščen z zelo minimalno pomišljajo. Skripte, ki uporabljajo bashizme, vendar so imeli #!/bin/ sh nenadoma zlomil.
Vendar:
- Tudi #!/bin/ bash ni tako pravilen. Na različnih sistemih lahko bash živi v /usr/ bin , /usr/pkg/ bin ali /usr/local/ bin .
- Bolj zanesljiva možnost je #!/usr/bin/ env bash , ki uporablja $ PATH .Čeprav orodje env sama ni popolnoma zagotovljeno, /usr/bin/ env še vedno deluje na več sistemih kot /bin/ bash .
Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.
Image Credit: Wikipedia