30Jul

Када је боље користити #!/bin/ басх Уместо #!/bin/ сх у скрипту Схелл?

Када креирате нову скрипту, желите се уверити да је то што је више могуће што је више могуће, али понекад може бити мало збуњујуће знати која је Схебанг најбоља за вас.На тој белешци, данашњи СуперУсер К & амп; А пост има одговор на питање збуњеног читаоца.

Питање дана & амп;Сесија одговора долази нам захваљујући СуперУсер-у подскупу Стацк Екцханге-а, групације К & ама;

Питање

СуперУсер читач Хендре жели да зна када је боље користити #!/bin/ басх уместо #!/bin/ сх у схелл скриптама:

Када је прикладније користити #!/bin/ басх уместо #!/bin/ сх у схелл скрипту?

Када је боље користити #!/bin/ басх уместо #!/bin/ сх у схелл скрипту?

Одговор на нас

СуперУсер доприноси:

Укратко:

  • Постоји неколико граната који имплементирају суперсет ПОСИКС сх спецификације.На различитим системима, /bin/ сх може бити веза са пепелом, басх, дасхом, ксх, зсх итд. Увек ће бити компатибилна са сх-компатибилним, никад не цсх или риба.
  • Све док се држите само функција сх, можете( и вероватно чак и требати) користити #!/bin/ сх и скрипта би требала функционирати добро, без обзира на коју грану је.
  • Ако почнете да користите функције специфичне за басх( тј. Низове), требало би посебно затражити басх јер, чак и ако /bin/ сх већ позива систем на вашем систему, то можда неће бити на свим осталим системима, а ваша скрипта се неће покренути тамо.Исто важи за зсх и ксх, наравно.
  • Чак и ако је скрипта само за личну употребу, можда ћете приметити да неки оперативни системи мењају /bin/ сх током надоградње.На примјер, на Дебиану је некада био басх, али је касније био замијењен минималним дасхом.Скрипте који су користили басхизме, али су имали #!/bin/ сх изненада се сломио.

Међутим:

  • чак и #!/bin/ басх није тачан.На различитим системима, басх може да живи у /usr/ бин , /usr/pkg/ бин , или /usr/local/ бин .
  • Више поуздана опција је #!/usr/bin/ енв басх , који користи $ ПАТХ .Иако сам алат за енв није строго гарантиран, /usr/bin/ енв и даље ради на више система него /bin/ басх .

Имате ли нешто да додате објашњењу?Звучи у коментарима.Желите да прочитате више одговора од других корисничких корисника Стацк Екцханге?Овде погледајте комплетну тему.

Имаге Цредит: Википедиа