Когато създавате нов скрипт на Shell, вие искате да сте сигурни, че е възможно най-безпроблемно, но понякога може да е малко объркващо да знаете коя е shebang е най-доброто, което можете да използвате. На тази бележка, днешната публикация "Суперусър Q & A" има отговор на объркан въпрос на читателя.
Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.
Четецът на SuperUser Hendre иска да знае кога е по-добре да го използвате #! / Хамбар / Баш вместо #! / Хамбар / од в скриптове на черупки:
Кога е по-подходящо да се използва #! / Хамбар / Баш отколкото #! / Хамбар / од в скрипт?
Кога е по-добре да се използва #! / Хамбар / Баш вместо #! / Хамбар / од в скрипт?
Слуховият сътрудник на SuperUser има отговор за нас:
Накратко:
- Има няколко черупки, които изпълняват надмножество от спецификацията POSIX sh. На различни системи, / Хамбар / од може да е връзка към пепел, баш, тире, ksh, zsh и т.н. Тя винаги ще бъде sh-съвместима обаче, никога csh или риба.
- Докато се придържате само към функциите на sh, можете да (и вероятно дори да използвате) #! / Хамбар / од и сценария трябва да работи добре, без значение коя обвивка е.
- Ако започнете да използвате функции, специфични за bash (т.е. масиви), трябва да поискате конкретно bash, защото, дори ако / Хамбар / од вече се позовава на баш на вашата система, тя може да не на системата на всички останали, и вашия скрипт няма да тичам там. Същото важи и за zsh и ksh, разбира се.
- Дори ако скриптът е само за лична употреба, може да забележите, че някои операционни системи се променят / Хамбар / од по време на ъпгрейди. Например, на Debian е било баш, но по-късно е заменен с много минимално тире. Скриптове, които използват башимства, но са имали #! / Хамбар / од изведнъж се счупи.
Въпреки това:
- Дори #! / Хамбар / Баш не е така. На различни системи, баш може да живее / ЮЕсАр / хамбар, / ЮЕсАр / PKG / бин, или / ЮЕсАр / местни / хамбар.
- По-надежден вариант е #! / usr / bin / env bash, който използва $ PATH, Въпреки че самият инструмент за опазване на околната среда не е строго гарантиран, / ЮЕсАр / хамбар / Околна среда все още работи на повече системи от / Хамбар / Баш прави.
Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.
Image Credit: Уикипедия