Команда Линук Басх јесхкомпатибилан преводилац превода који извршава команде прочитане са стандардног уноса или из датотеке.Басх такође укључује корисне функције Корн и Ц шкољки (ксх ицсх).
Басх Оптионс
Осим једноставних опција шоље документоване у описукомплет буилтин цомманд,басх интерпретира следеће опције када се позива:
- -ц низ: Ако је-ц опција је присутна, а затим се читају команде низ . Ако постоје аргументи после низ , они су додељени позицијским параметрима, почевши од$0.
- -и: Ако је-и опција је присутна, схелл је интерактивни .
- -л: Направитибасх деловати као да се позива као шифра за пријављивање.
- -р: Ако је-р опција је присутна, схелл постаје ограничен.
- -с: Ако је-с опција је присутна, или ако након обраде опција не остају никакви аргументи, онда се команде чита са стандардног уноса. Ова опција дозвољава постављање параметара позиције када се позива на интерактивну шкољку.
- -Д: Списак свих двоструких цитата које претходи$ се штампа на стандардном излазу. То су стрингови који подлежу преводу језика када тренутна локација нијеЦ илиПОСИКС. То подразумева -н опција; ниједна команда неће бити извршена.
- - + О схопт_оптион : схопт_оптион је једна од опција лупа коју је прихватиосхопт уграђен. Ако схопт_оптион је присутан,-О поставља вредност те опције и+ О нестаје. Ако схопт_оптион није испоручено, имена и вриједности опција које су прихваћенесхопт се штампају на стандардном излазу. Ако је опција за позивање + О, излаз се приказује у формату који се може поново користити као улаз.
- --: А-- сигнализира крај опција и онемогућава даље опционо обрађивање. Било који аргумент након-- третирају се као имена датотека и аргументи. Аргумент од- је еквивалентно са--.
Басх такође тумачи низ више карактерних опција. Ове опције морају се појавити у командној линији пре него што се препознају опције са једним знаком:
- -думп-по-стрингс: Еквивалентно са-Д, али је излаз у ГНУ-у геттект по (преносиви објект) формат датотеке.
- -думп-стрингс: Еквивалентно са-Д.
- --помоћ: Прикажите поруку о употреби на стандардном излазу и излазите успешно.
- --инит-фајл: филе и --рцфиле филе : Извршите наредбе од филе уместо стандардне датотеке личне иницијализације ~ / .басхрц ако је љуска интерактивна.
- --Пријавите се: Еквивалентно са-л.
- - уједињење: Немојте користити ГНУреадлине библиотека за читање командних линија када је љуска интерактивна.
- --нопрофиле: Не читајте системску датотеку за покретање система / етц / профиле или било које од личних датотека за иницијализацију ~ / .басх_профиле , ~ / .басх_логин , или ~ / .профиле . Подразумевано,басх чита ове датотеке када се позива као шифра за пријављивање.
- --Норц: Немојте читати и извршавати личну датотеку за иницијализацију ~ / .басхрц ако је љуска интерактивна. Ова опција је подразумевано укључена ако се схелл користи каосх.
- --посик: Промените понашањебасх где се подразумевана операција разликује од ПОСИКС стандарда у складу са стандардом ( посик моде ).
- --ограничен: Љуска постаје ограничена.
- -рпм-захтева: Израдите листу датотека које су потребне за покретање скрипте. Ово подразумева '-н' и подлеже истим ограничењима као и провјеру провере грешака времена компајлирања; Бацктицкс, тестови и евали нису раздвојени тако да се неке зависности могу пропустити.
- - вербосе: Еквивалентно са-в.
- - верзија: Прикажи информације о верзији за ову инстанцубасх на стандардном излазу и излазу успешно.
Аргументи
Ако аргументи остају након обраде опције и не-ц нити-с опција је дата, први аргумент се сматра називом датотеке која садржи команде схелл-а. Ако басх на овај начин се позива,$0 је постављено на име датотеке, а положајни параметри су постављени на преостале аргументе.Басх чита и извршава команде из ове датотеке; онда излази.Басхстатус изласка је статус излаза последње команде извршене у скрипту. Ако ниједна команда није извршена, статус иза је 0. Покушај је прво направити да се датотека отвори у тренутном директоријуму, а ако се не пронађе датотека, онда ће схелл претраживати директоријуме уПАТХ за сценарио.
Позивање
А логин схелл је онај чији је први карактер нуле аргумента а-, или један је започео са--Пријавите се опција.
Ан интерактивни љуска је почела без аргумената без опције и без-ц опција чији стандардни улаз и излаз су оба повезани са терминали како је то одређено исатти (3), или један је започео са-и опција.ПС1 је подешен и $- укључује ако је басх интерактиван, дозвољавајући скрипту или почетну датотеку да тестира ово стање.
Следећи параграфи описују какобасх извршава своје стартуп датотеке. Ако било која од датотека постоји, али не може се прочитати,басх извештава о грешци. Тилдови се проширују у имена датотека како је описано у Тилде Екпансион.
Кадабасх се позива као интерактивна шифра за пријављивање или као не-интерактивна љуска са--Пријавите се опција, најпре чита и извршава команде из датотеке / етц / профиле , ако та датотека постоји. После читања те датотеке, то тражи ~ / .басх_профиле , ~ / .басх_логин , и ~ / .профиле , у том редоследу, и чита и извршава команде из првог који постоји и може се читати. Тхе--нопрофиле опција се може користити када је схелл почела да инхибира ово понашање.
Када напушта схелл логин,басх чита и извршава команде из датотеке ~ / .басх_логоут , ако постоји.
Када се покрене интерактивна љуска која није шифра за пријављивање,басх чита и извршава команде ~ / .басхрц , ако та датотека постоји. Ово се може инхибирати употребом--Норц опција. Тхе--рцфиле филе опција ће присилитибасх да читате и извршавате команде филе уместо ~ / .басхрц .
Кадабасх започео је неинтерактивно - на пример, покренути схелл скрипту - тражи варијаблуБАСХ_ЕНВ у окружењу, проширује своју вриједност ако се тамо појављује и користи проширену вриједност као име датотеке за читање и извршавање.Басх понаша се као да је извршена следећа команда:
ако -н "$ БАСХ_ЕНВ"; онда . "$ БАСХ_ЕНВ"; фи
већ вриједностПАТХ варијабла се не користи за претраживање имена датотеке. Акобасх се позива са именомсх, покушава да имитира почетно понашање историјских верзијасх што је могуће ближе, док је у складу са ПОСИКС стандардом. Када се позову као интерактивна шифра за пријаву или неинтерактивна љуска са--Пријавите се опција, покушава прво да прочита и извршава наредбе / етц / профиле и ~ / .профиле , у том циљу. Тхе--нопрофиле опција се може користити за спречавање овог понашања. Када се позивају као интерактивна љуска са именом сх, басх тражи варијаблуЕНВ, шири своју вриједност ако је дефинисана, и користи проширену вриједност као име датотеке за читање и извршавање. Пошто се граната позвала каосх не покушава да прочита и извршава команде из било које друге датотеке за покретање--рцфиле опција нема ефекта. Не-интерактивна лупина позвана је са именомсх не покушава да прочита било коју другу датотеку за покретање. Када се позову каосх, басх улази посик режим након читања датотека за покретање. Кадабасх започиње у посик мод, као и са--посик опција командне линије, следи ПОСИКС стандард за датотеке за покретање. У овом режиму, интерактивне шкољке ширеЕНВ варијабла и команде се читају и извршавају из датотеке чије је име проширена вриједност. Нема других датотека за покретање. Басх покушава да утврди када га покреће удаљени схелл-демон, обично рсхд . Ако басх одређује да га покреће рсхд , чита и извршава команде од ~ / .басхрц , ако та датотека постоји и може се читати. То неће учинити ако се позове каосх. Тхе--Норц опција се може користити за спречавање овог понашања, и--рцфиле опција се може користити да би се сила друга датотека која ће се читати, али рсхд обично не позива љуску са тим опцијама или не дозвољава да се оне специфицирају. Ако је љуска започета са ефективним корисничким (групним) ид-ом који није једнак правом кориснику (групи), ид-п опција се не испоручује, никакве датотеке за читање нису прочитане, функције шкољке нису наслеђене из окружењаСХЕЛЛОПТС варијабла, ако се она појави у окружењу, занемарује се, а ефективан кориснички ИД је постављен на стварни кориснички ИД. Ако је-п опција се испоручује при позиву, понашање при покретању је исто, али ефективни кориснички ИД се не ресетује. Следеће дефиниције се користе у целом остатку овог документа: Резервисане речи речи које имају посебно значење за љуску. Следеће речи су препознате као резервисане када се не котирају и или прва реч једноставне команде или треће речи аслучајилиза наредба: ! случај уради елиф друго есац фи за функцију ако је у одјељку док не дођете док {} време А једноставна команда је секвенца опционих опционих задатака које следепразно- раздвојене речи и преусмјеравања а завршава са а контролни оператор . Прва реч специфицира команду која се извршава и која се преноси као аргумент нула. Преостале речи се преносе као аргументи за позвани команду. Повратна вредност а једноставна команда је његов излазни статус или 128+ н ако је команда прекинута сигналом н . А цевовод је секвенца једне или више команди одвојених од карактера|. Формат за гасовод је време -п ! команда | цомманд2 … . Стандардни излаз команда је повезан преко цеви са стандардним улазом од цомманд2 . Ова веза се извршава пре било каквих преусмеравања које је одредила команда. Ако резервисана реч! претходи цевоводу, статус излаза за тај гасовод је логична НОТ статуса из задње наредбе. У супротном, статус плиновода је статус излаза последње команде. Шкорање чека све команде у цјевоводу да се прекину пре враћања вредности. Ако јевреме резервисана реч претходи цевоводу, протекло време, као и време корисника и времена које се троше по његовом извршењу, пријављују се када се цевовод заврши. Тхе-п опција промени формат излаза на онај који је одредио ПОСИКС. ТхеФОРМАТ ВРЕМЕНА варијабла се може поставити у низ формата који одређује како треба приказати информације о времену. Свака наредба у плиноводу се извршава као засебан процес (на пример, подгрупе). А листа је низ једне или више цевовода одвојених од једног од оператора;, &, &&, или||, и опционо прекинута са једним од;, &, или Од ових оператора листе,&& и|| имају једнаке приоритете, након чега следи; и&, који имају једнак приоритет. Низ једног или више нових линија може се појавити у а листа умјесто тачка и зарезе да разјасни наредбе. Ако команду прекине контролни оператер&, схелл извршава команду у бацкгроунд у подсклопу. Шоку не чека да команда заврши, а статус повратка је 0. Команде одвојене од а; се извршавају секвенцијално; шкољка чека сваку наредбу да се оконча. Повратни статус је статус излаза последње извршене команде. Контролни оператери&& и|| означавају АНД листе и ОР листе, респективно. Листа АНД АНД има облик цомманд1 && цомманд2 цомманд2 се извршава ако и само ако, цомманд1 враћа статус изласка од нуле. Листа ОР је у облику цомманд1 || цомманд2 цомманд2 се извршава ако и само ако цомманд1 враћа статус нуле који није нула. Повратни статус листе АНД и ОР је статус излаза последње команде извршене на листи. А компликована команда је једно од следећих: (листа) : листа се извршава у подсклопу. Додјеле варијабли и уграђене команде које утичу на окружење схелл-а не остану на снази након што команда заврши. Повратни статус је статус излазног стања листа . { листа; } : листа једноставно се извршава у тренутном схелл окружењу. листа мора бити прекинута са новом линијом или тачка-тачка-тачка. Ово је познато као а групна команда . Повратни статус је статус излазног стања листа . Имајте на уму да за разлику од мета-карактера( и), { и} су резервисане речи и мора се десити када се резервисана реч дозвољава препознати. Пошто не изазивају паузу ријечи, морају се одвојити листа би вхитеспаце. ((израз)) : Тхе израз оцењују се према правилима описаним под Аритметичка процена. Ако је вредност израза нула, повратни статус је 0; иначе је статус поврата 1. То је тачно једнакодозволити ' израз '. израз : Вратите статус од 0 или 1 у зависности од процене условног израза израз . Изрази се састоје од примарних параметара описаних испод Условне изразе. Раздвајање ријечи и проширење путање се не врше на ријечима између и; проширење тилде, параметар и варијабилна експанзија, аритметичка експанзија, супституција команде, замјена процеса и уклањање цитата. Када== и!= користе се оператори, низ десно од оператора се сматра шемом и усклађен је према правилима описаним подПоклапање облика. Повратна вредност је 0 ако се стринг поклапа или не одговара образцу, респективно и 1 у другом случају. Сваки део шаблона може бити цитиран да би га примијенио као низ. Изрази се могу комбиновати помоћу сљедећих оператора, наведених у редоследу приоритета: Тхе&& и|| оператери не процењују екпрессион2 ако је вредност екпрессион1 довољно је да одреди повратну вредност целог условног израза. У не-интерактивној школи или интерактивној школи у којој је интерацтиве_цомментс опција насхопт уграђен је омогућен, реч почиње са# доводи до тога да се та реч и сви остали знакови на тој линији игноришу. Интерактивни схелл безинтерацтиве_цомментс опција омогућена не допушта коментаре. Тхе интерацтиве_цомментс опција је подразумевано у интерактивним гранама. Цитирање користи се за уклањање посебног значења одређених знакова или речи у љуску. Цитирање се може користити за онемогућавање посебног третмана специјалних знакова, како би се спречиле препознати резервисане ријечи као такве, као и да се спречи ширење параметара. Сваки од метацхарацтерс горе наведени подДефиниције има посебно значење за љуску и мора се цитирати ако се представља. Када се користе објекти за проширење историје историје, ширење историје карактер, обично!, мора бити цитирана да би се спречило ширење историје. Постоје три механизма цитирања: бежични лик , појединачне цитате и дупле цитате. Непотписана пошиљака () је бежични лик . Он чува буквалну вредност следећег карактера који следи, са изузетком Приложени знакови у појединачним цитатима чувају дословну вредност сваког карактера унутар цитата. Појединачни цитат се можда не појављује између појединачних цитата, чак и када је претходно обрнуто. Приложени знакови у двоструким наводницима чува буквалну вредност свих знакова унутар цитата, изузев$, ', и. Ликови$ и' задржавају своје посебно значење у двоструким наводницима. Бацксласх задржава своје посебно значење само ако следи један од следећих знакова:$, ', ', , или Посебни параметри* и@ имају посебно значење када су у двоструким наводницима. Речи обрасца$' низ "се третирају посебно. Реч проширује низ , са замијењеним знаковима са бацксласх-ом, као што је наведено у АНСИ Ц стандарду. Бацксласх есцапе секуенцес, ако су присутни, се декодирају на следећи начин: Проширени резултат је појединачан, као да знак за долар није био присутан. Дупло цитиран низ који претходи знаку долара ($) ће довести до тога да се стринг преведе према тренутном језику. Ако је тренутно локалноЦ илиПОСИКС, знак за долар се занемарује. Ако је низ преведен и замењен, замена је двострука. А параметар је ентитет који чува вредности. То може бити а име , број, или један од специјалних знакова који су наведени исподПосебни параметри. За потребе шкољке, а променљива је параметар означен са а име . Променљива је а вредност и нула или више атрибути . Атрибути се додељују помоћуизјавити изграђена команда. Параметар је подешен ако му је додијељена вриједност. Нула стринг је важећа вриједност. Једном када је постављена варијабла, она се може искључити само помоћуунсет изграђена команда. А променљива може се додијелити изјавом о обрасцу: име = вредност Ако вредност није дата, променљива је додељена нултом низу. Све вредности пролазе експанзију тилде, параметре и варијабилне експанзије, замену наредбе, аритметичку експанзију и уклањање цитата. Ако варијабла има својинтегер атрибут сет, онда вредност подлеже аритметичком експанзији чак и ако се експанзија $ ((…)) не користи. Раздвајање речи се не врши, изузев'$@' како је објашњено подПосебни параметри. Проширење путање није извршено. Изјаве о додељивању могу се појавити и као аргументи заизјавити, типови, извоз, само за читање, и локално изграђене команде. А позициони параметар је параметар означен једним или више цифара, осим једне једне цифре 0. Позицијски параметри се додељују из аргумената љуске када се позивају и могу се поново распоредити користећикомплет изграђена команда. Позицијски параметри се не смеју додељивати изјавама додјеле. Позицијски параметри се привремено замењују када се изврши шоља функција. Када се параметар позиције који се састоји од више од једне цифре проширује, мора бити затворен у кочнице. Шарка посебно третира неколико параметара. Ови параметри могу се референцирати само; додељивање њима није дозвољено. Следеће варијабле поставља љуска: БАСХ: Шири до пуног имена датотеке који се користи за позив на ову инстанцубасх. БАСХ_ВЕРСИНФО: Прочита читав низ променљивих чији чланови садрже информације о верзији за ову инстанцу басх. Вредности додељене члановима поља су следеће: БАСХ_ВЕРСИОН: Шири у низ који описује верзију ове инстанцебасх. ЦОМП_ЦВОРД: Индекс у$ {ЦОМП_ВОРДС} речи која садржи тренутну позицију курсора. Ова варијабла је доступна само у функцијама шкољке које се позивају помоћу програмабилних објеката за завршетак. ЦОМП_ЛИНЕ: Тренутна командна линија. Ова варијабла је доступна само у функцијама шкољке и екстерним командама које се позивају помоћу програмабилних објеката за завршетак. ЦОМП_ПОИНТ: Индекс тренутне позиције курсора у односу на почетак тренутне команде. Ако је тренутна позиција курсора на крају тренутне наредбе, вредност ове варијабле је једнака$ {# ЦОМП_ЛИНЕ}. Ова варијабла је доступна само у функцијама шкољке и екстерним командама које се позивају помоћу програмабилних објеката за завршетак. ЦОМП_ВОРДС: Варијабла низова која се састоји од појединачних речи у тренутној командној линији. Ова варијабла је доступна само у функцијама шкољке које се позивају помоћу програмабилних објеката за завршетак. ДИРСТАЦК: Варијабла низова која садржи тренутни садржај стацк директоријума. Директори се појављују у стацку у редоследу којим их приказуједирс уграђен. Додјељивање чланова ове променљиве матрице може се користити за модификовање директорија већ у стацку, алипусхд ипопд уграђени морају бити коришћени за додавање и уклањање директоријума. Додјела овој варијабли неће промијенити тренутни директориј. АкоДИРСТАЦК је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. ЕУИД: Проширује се на ефективну корисничку идентификацију тренутног корисника, иницијализовану приликом покретања шкољке. Ова варијабла је само за читање. ФУНЦНАМЕ: Име било које функције која се тренутно извршава. Ова варијабла постоји само када се извршава шоља функција. Задаци уФУНЦНАМЕ нема ефекта и врати статус грешке. АкоФУНЦНАМЕ је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. ГРОУПС: Варијабла низова која садржи листу група чији је тренутни корисник члан. Задаци уГРОУПС нема ефекта и врати статус грешке. АкоГРОУПС је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. ХИСТЦМД: Број историје или индекс у листи историје тренутне команде. АкоХИСТЦМД је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. ХОСТНАМЕ: Аутоматски поставите на име тренутног хоста. ХОСТТИПЕ: Аутоматски подесите стринг који јединствено описује врсту машине на којој се налазибасх се извршава. Подразумевана је системска зависност. ЛИНЕНО: Сваки пут када се користи овај параметар, схелл замењује децимални број који представља тренутни секвенцијални број линије (почевши од 1) унутар скрипте или функције. Када није у скрипту или функцији, загарантована вриједност није гарантована. АкоЛИНЕНО је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. МАЦХТИПЕ: Аутоматски је постављен на низ који у потпуности описује тип система на коме се налазибасх се извршава у стандардном ГНУ-у цпу-цомпани-систем формату. Подразумевана вредност зависи од система. ОЛДПВД: Претходни радни директоријум постављен од странецд команда. ОПТАРГ: Вредност последње аргументације опције коју је обрадиогетоптс изграђена команда. ОПТИНД: Индекс следећег аргумента који треба да обрадигетоптс изграђена команда. ОСТИПЕ: Аутоматски је постављен на низ који описује оперативни систем на којембасх се извршава. Подразумевана је системска зависност. ПИПЕСТАТУС: Варијабла низова која садржи листу вредности излазног статуса из процеса у најновије извршеном протоколу за планирање у предњем делу, који може садржавати само једну команду. ППИД: Идентификациони процес родитеља љуске. Ова варијабла је само за читање. ПВД: Тренутни радни директоријум постављен од странецд команда. РАНДОМ: Сваки пут када се користи овај параметар генерира се насумичан цијели број од 0 до 32767. Низ случајних бројева може бити иницијализован додјељивањем вриједности РАНДОМ. АкоРАНДОМ је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. ОДГОВОРИТИ: Подесите линију уноса коју прочитачитати уграђена команда када се не добију аргументи. СЕЦОНДС: Сваки пут када се користи овај параметар, број секунди од тренутка враћања позива се враћа. Ако је додељена вредностСЕЦОНДС, вредност која се враћа након следећих референци је број секунди од задатка плус додијељена вриједност. Ако СЕЦОНДС је неисправан, губи своја посебна својства, чак и ако је накнадно ресетован. СХЕЛЛОПТС: Списак опција омогућених граната одвојен од стране колона. Свака реч на листи је валидан аргумент за-о опција накомплет изграђена команда. Опције које се појављују уСХЕЛЛОПТС су оне пријављене као на од странесет -о. Ако је ова варијабла у окружењу кадабасх покреће се, свака шоља опција на листи ће бити омогућена пре читаоца датотека за покретање. Ова варијабла је само за читање. СХЛВЛ: Повећана је по један сваки пут када је инстанцабасх започиње. УИД: Шири до ИД корисника тренутног корисника, иницијализован приликом покретања шкољке. Ова варијабла је само за читање. Шупљина користи следеће варијабле. У неким случајевима,басх додељује подразумевану вредност променљивој; ови случајеви су примећени. БАСХ_ЕНВ: Ако је овај параметар подешен кадабасх извршава схелл скрипту, његова вриједност се тумачи као име датотеке које садржи команде за иницијализацију схелл-а, као у ~ / .басхрц . Вредност БАСХ_ЕНВ је подложан експанзији параметара, замени команди и аритметичком експанзији прије него што се тумачи као име датотеке.ПАТХ се не користи за претраживање резултирајуће име датотеке. ЦДПАТХ: Путања за претраживањецд команда. Ово је листа директорија у коме се налази директоријум, у којем схелл тражи одредишне директоријуме које је одредиоцд команда. Вредност узорка је ".: ~: / Уср". ЦОЛУМНС: Користи гаизаберите уграђена наредба за одређивање ширине терминала при штампању листе селекције. Аутоматски се постави по пријему СИГВИНЦХ-а. КОМПОНЕНТЕ: Варијабла низова из којегбасх чита могуће закључке генерисане помоћу функције схелл-
Дефиниције
Резервисане ријечи
Схелл Граммар: Симпле Цоммандс
Цевоводи
Листе
Командне команде
Коментари
Цитирање
Параметри
Позицијски параметри
Посебни параметри
Схелл Вариаблес












