Баш - Linux Command - Unix каманднага

NAME

Баш - GNU Bourne-Again SHell

сінтаксіс

Баш [опцыі] [файл]

АПІСАННЕ

Bash з'яўляецца ш інтэрпрэтатарам мовы -Совместима каманды , якая выконвае каманды чытання з стандартнага ўводу або з файла. Bash таксама ўключае ў сябе карысныя функцыі з абалонак Korn і C (КШ і CSH).

Bash прызначаны быць сумяшчальнай рэалізацыяй IEEE POSIX Shell і інструментаў спецыфікацыі (Працоўная група IEEE 1003.2).

варыянты

У дадатак да опцыям абалонкі односимвольных дакументаваных ў апісанні каманды набору ўбудаваных, баш інтэрпрэтуе наступныя опцыі пры выкліку:

-c радок

Калі опцыя -c прысутнічае, то каманды счытваюцца з радка. Калі ёсць аргументы пасля радка, яны прызначаюцца пазіцыйных параметраў, пачынаючы з $ 0.

-i

Калі опцыя -i прысутнічае, абалонка з'яўляецца інтэрактыўнай.

-l

Зрабіць Баш дзейнічаць , як калі б ён быў выкліканы ў якасці рэгістрацыйнай абалонкі (гл Прызыву ніжэй).

-r

Калі опцыя -r прысутнічае, абалонка становіцца абмежаваным (гл абмежаванай абалонкі ніжэй).

-s

Калі опцыя -s прысутнічае, або калі няма аргументаў застаюцца пасля апрацоўкі опцый, то каманды счытваюцца з стандартнага ўводу. Гэтая опцыя дазваляе ўсталёўваць пазіцыйныя параметры неабходна ўсталяваць пры выкліку інтэрактыўнай абалонкі.

-D

Спіс усіх радкоў у падвойных двукоссях папярэднічала $ друкуецца на стандартным вывадзе. Гэта радок , якія з'яўляюцца прадметам моўнага перакладу , калі бягучая лакаль ня C або POSIX. Гэта мае на ўвазе опцыю -n; ніякіх каманд не будуць выкананыя.

[- +] O [shopt_option]

shopt_option з'яўляецца адным з варыянтаў абалонкі , прынятых shopt убудаванай каманды (гл SHELL BUILTIN КАМАНДЫ ніжэй). Калі shopt_option прысутнічае, -O ўсталёўвае значэнне гэтай опцыі; + O скідае яго. Калі shopt_option не пастаўляецца, імёны і значэння параметраў абалонкі , прынятых shopt друкуюцца на стандартны вывад. Калі параметр выкліку будзе + O, выхад адлюстроўваецца ў фармаце , які можа быць паўторна выкарыстаны ў якасці ўваходных дадзеных.

-

A - сігналізуе канец опцый і адключае далейшую апрацоўку параметраў. Любыя аргументы , пасля таго , як - разглядаюцца як імёны файлаў і аргументы. Аргумент - гэта эквівалентна -.

Bash таксама інтэрпрэтуе шэраг опцый некалькі знакаў. Гэтыя параметры павінны з'явіцца ў камандным радку перад односимвольными опцыямі, якія будуць прызнаныя.

--dump-па-радкоў

Эквівалент -D, але выснова ў фармаце GNU Gettext ро (партатыўны аб'ект).

--dump-радкі

Эквівалент -D.

--help

Адлюстраванне паведамленні на стандартны вывад і паспяхова завяршыцца.

--init-файл

--rcfile файл

Выкананне каманд з файла замест стандартнага персанальнага файла ініцыялізацыі ~ / .bashrc , калі абалонка з'яўляецца інтэрактыўнай (гл яго заклікаем ніжэй).

--увайсці

Эквівалент -l.

--noediting

Не выкарыстоўвайце бібліятэку Readline GNU для чытання камандных радкоў , калі абалонка з'яўляецца інтэрактыўнай.

--noprofile

Не чытаць ні агульнасістэмны файл запуску / і г.д. / профіль або любой з файлаў персанальнай ініцыялізацыі ~ / .bash_profile, ~ / .bash_login ці ~ / .profile. Па змаўчанні, баш чытае гэтыя файлы пры выкліку ў якасці рэгістрацыйнай абалонкі (гл Прызыву ніжэй).

--norc

Не чытаць і выконваць персанальны файл ініцыялізацыі ~ / .bashrc , калі абалонка з'яўляецца інтэрактыўнай. Гэтая опцыя ўключана па змаўчанні , калі абалонка выклікаецца як ш.

--posix

Змяненне паводзін Баша , калі аперацыя па змаўчанні адрозніваецца ад стандарту POSIX 1003.2 , каб адпавядаць стандартным (рэжыму Posix).

--restricted

Абалонка становіцца абмежаваным (гл абмежаванай абалонкі ніжэй).

--rpm-патрабуе

Вырабляе спіс файлаў, якія неабходныя для сцэнара абалонкі для запуску. Гэта азначае, «-n» і падпарадкоўваецца тым жа абмежаванням, як праверка кампіляцыі памылка падчас праверкі; Двукоссе, [] тэсты і Evals не разбіраюцца, таму некаторыя залежнасці можа быць прапушчана. --verbose Эквівалент -v.

--version

Паказаць інфармацыю аб версіі для дадзенага асобніка Баш на стандартны вывад і паспяхова.

Аргумент

Калі аргументы застаюцца пасля апрацоўкі опцый, і ні -c , ні опцыя -s была забяспечаная, мяркуецца , што першы аргумент як імя файла , які змяшчае каманды абалонкі. Калі Баш выклікаецца такім чынам, $ 0 усталёўваецца на імя файла, а пазіцыйныя параметры ўсталёўваюцца ў астатнія аргументы. Bash чытае і выконвае каманды з гэтага файла, а затым завяршае сваю працу. Статус выхаду Bash «s з'яўляецца статус выхаду апошняй каманды , выкананай у сцэнары. Калі ні адна з каманд не выконваецца, статус выхаду роўны 0. Спробы першай зроблена , каб адкрыць файл у бягучым каталогу, і, калі файл не знойдзены, то абалонка шукае каталогі ў PATH для сцэнара.

ВЫЗОВА

Увайсці абалонка, чый першы сімвал аргументу нуль з'яўляецца - або адзін пачаў з --login варыянт.

Інтэрактыўная абалонка адзін запускаецца без аргументаў без опцый і без опцыі -c , чый стандартны ўваходны і выходны абодва падлучаныя да клем (як вызначана isatty (3)), або адзін пачаў з опцыяй -i. PS1 усталёўваецца і $ - уключае ў сябе я , калі Баш з'яўляецца інтэрактыўным, дазваляючы скрыпт або файл запуску для праверкі гэтага стану.

У наступных пунктах апісваецца , як Баш выконвае файлы запуску. Калі якія - небудзь файлы існуюць , але не можа быць прачытаны, баш выдае паведамленне пра памылку. Tildes раскладаюцца ў імёнах файлаў , як апісана ніжэй у раздзеле тыльды ў раздзеле пашырэння.

Калі Баш выклікаецца як інтэрактыўная абалонка, ці як не-інтэрактыўнай абалонкі з --login варыянт, ён спачатку счытвае і выконвае каманды з файла / і г.д. / профіль, калі гэты файл існуе. Пасля прачытання гэтага файла, ён шукае ~ / .bash_profile, ~ / .bash_login і ~ / .profile, у такім парадку, і чытае і выконвае каманду з першага, які існуе і чытэльныя. --noprofile варыянт можа быць выкарыстаны , калі абалонка запускаецца , каб інгібіраваць такія паводзіны.

Калі Увайсці абалонка выходзіць, баш чытае і выконвае каманды з файла ~ / .bash_logout, калі ён існуе.

Пры запуску інтэрактыўнай абалонкі , якая ня Увайсці абалонка, баш чытае і выконвае каманды з ~ / .bashrc, калі гэты файл існуе. Гэта можа быць задушана з дапамогай --norc опцыі. Опцыя --rcfile файл прымусіць Баш чытаць і выконваць каманды з файла замест ~ / .bashrc.

Калі Баш запускаюцца ня інтэрактыўна, каб запусціць скрыпт, напрыклад, ён шукае зменную BASH_ENV ў асяроддзі, пашырае сваё значэнне , калі яно з'явіцца там, і выкарыстоўвае пашыранае значэнне як імя файла для чытання і выканання , Bash паводзіць сябе як калі наступная каманда была выкананая:

калі [-n "$ BASH_ENV"]; то. "$ BASH_ENV"; фі

але значэнне зменнай PATH не выкарыстоўваецца для пошуку імя файла.

Калі Баш выклікаецца з імем Ш., ён спрабуе імітаваць запуск старых версій ш максімальна блізка , наколькі гэта магчыма, у той час як у адпаведнасці са стандартам POSIX , а таксама. Пры выкліку ў якасці інтэрактыўнай абалонкі ўваходу ў сістэму , або не-інтэрактыўнай абалонкі з --login варыянт, ён спачатку спрабуе чытаць і выконваць каманды з / і г.д. / профіль і ~ / .profile, у такім парадку. --noprofile опцыя можа быць выкарыстана для падаўлення такіх паводзін. Пры выкліку ў якасці інтэрактыўнай абалонкі з імем ш, баш шукае зменную ENV, пашырае сваё значэнне , калі яна вызначана, і выкарыстоўвае пашыранае значэнне як імя файла для чытання і выканання. Так як абалонка выклікаецца як ш не спрабуе чытаць і выконваць каманды ад любых іншых файлаў аўтазапуску, то --rcfile параметр не мае ніякага эфекту. Неінтерактівных абалонка выклікаецца з імем ш не спрабуе чытаць любыя іншыя файлы запуску. Пры выкліку ў якасці ш, баш ўваходзіць у рэжыме Posix пасля запуску чытання файлаў.

Калі Баш запускаецца ў рэжыме Posix, як і з опцыяй --posix каманднага радка, ён варта стандарту POSIX для файлаў аўтазапуску. У гэтым рэжыме, інтэрактыўныя абалонкі пашырыць зменную ENV і каманды счытваюцца і выконваюцца з файла, імя якога будзе значэнне. Ніякія іншыя загрузныя файлы не чытаюцца.

Bash спрабуе вызначыць , пры яго падпарадкаванні дэмана выдаленай абалонкі, як правіла , РСХД. Калі Баш вызначае , што ў цяперашні час у вядзенні РСХДА, ён счытвае і выконвае каманду з ~ / .bashrc, калі гэты файл існуе і даступны для чытання. Ён не будзе рабіць гэта , калі выклікаецца як ш. --norc опцыя можа быць выкарыстана для падаўлення такіх паводзін, і --rcfile опцыя можа быць выкарыстана , каб прымусіць іншы файл , які будзе лічаны, але РСХД звычайна не спасылацца на абалонку з гэтымі опцыямі , або дазволіць ім быць паказаны.

Калі абалонка запускаецца з эфектыўным карыстальніка (групы) , ня супадальным з рэальным карыстальнікам (групы) ідэнтыфікатару, а опцыя -p не ўваходзіць у камплект, ня загрузныя файлы не чытаюцца, функцыі абалонкі не ўспадкоўваюцца з асяродзьдзя, у SHELLOPTS зменная, калі яна з'яўляецца ў асяроддзі, ігнаруецца, а эфектыўны ідэнтыфікатар карыстальніка усталёўваецца ў рэальны ідэнтыфікатар карыстальніка. Калі опцыя -p пры выкліку, то паводзіны запуску з'яўляецца тое ж самае, але эфектыўны ідэнтыфікатар карыстача не скідаецца.

ВЫЗНАЧЭННІ

Наступныя вызначэння выкарыстоўваюцца ў астатняй частцы гэтага дакумента.

пусты

Прастору або ўкладкі.

слова

Паслядоўнасць знакаў, якія разглядаюцца як адзінае цэлае з дапамогай абалонкі. Таксама вядомы як знак.

імя

Слова , якое складаецца толькі з алфавітна - лічбавых знакаў і сімвалаў падкрэслення, а пачынаючы з літарай або сімвалам падкрэслення. Таксама згадваецца як ідэнтыфікатар.

метасімвалы

Сімвал, які, калі двукоссі, падзяляе слова. Адзін з наступных дзеянняў:

| &; () <> Ўкладка прасторы

аператар кіравання

Маркер , які выконвае функцыю кіравання. Гэта адзін з наступных сімвалаў:

|| & &&; ;; () | <Пераклад радка>

зарэзерваваныя словы

Зарэзерваваныя словы з'яўляюцца словамі , якія маюць асаблівае значэнне для абалонкі. Наступныя словы распазнаюцца як зарэзерваваныя , калі без двукоссяў і альбо першае слова просты каманды (гл SHELL граматыку ніжэй) або трэцяе слова ў выпадку або для каманды:

! справа сапраўды зроблена Эліф яшчэ ESAC фі для функцыі , калі ў абярыце то пакуль у той час як {} час [[]]

SHELL GRAMMAR

простыя каманды

Простая каманда ўяўляе сабой паслядоўнасць дадатковых прызначэнняў зменных варта пустому -разделенному слоў і пераадрасацыя і перапыненых аператар кіравання. Першае слова паказвае каманду, якая будзе выканана, і перадаецца ў якасці аргументу нуль. Тыя, што засталіся словы перадаюцца ў якасці аргументаў выкліканай каманды.

Вяртаецца значэнне просты каманды з'яўляецца яе статус выхаду, або 128+ п , калі каманда завяршаецца сігналам п.

трубаправоды

Трубаправод ўяўляе сабой паслядоўнасць з адной або больш каманд , падзеленых сімвалам | , Фармат для трубаправода:

[Час [-p]] [! ] Каманда [| command2 ...]

Стандартны вывад каманды падлучаны праз трубу да стандартнага ўводу каманды команда2. Гэта злучэнне выконваецца перад любымі пераадрасацыі , указаных камандай (гл Перанакіраванне ніжэй).

Калі зарэзерваваныя слова! папярэднічае трубаправод, статус выхаду з гэтага трубаправода з'яўляецца лагічным НЕ статус выхаду апошняй каманды. У адваротным выпадку статус трубаправода з'яўляецца статус выхаду апошняй каманды. У інтэрпрэтатар чакае ўсіх каманд у канвееры спыніць да вяртання значэння.

Калі час зарэзерваваныя слова папярэднічае трубаправод мінулы, а таксама карыстальнікаў і сістэма часу спажываецца яго выканання , як паведамляецца , калі трубаправод сканчаецца. Опцыя -p змяняе фармат вываду на які вызначаецца POSIX. Пераменная TIMEFORMAT можа быць усталяваны ў фармаце радка , якая вызначае , якім чынам павінна адлюстроўвацца інфармацыя сінхранізацыі; глядзіце апісанне TIMEFORMAT пад Зменныя Shell ніжэй.

Кожная каманда ў канвееры выконваецца як асобны працэс (гэта значыць, у субоболочке).

спісы

Спіс ўяўляе сабой паслядоўнасць з аднаго або некалькіх канвеераў , падзеленых адным з аператараў; , &, && або || І неабавязкова спыняецца па адным з; , & Або <новага радка>.

З гэтых аператараў спісу, && і || маюць аднолькавы прыярытэт, а затым; і &, якія маюць аднолькавы прыярытэт.

Паслядоўнасць з аднаго або больш новых радкоў можа з'явіцца ў спісе замест коскі , каб размежаваць каманды.

Калі каманда завяршаецца аператарам кіравання і, абалонка выконвае каманду ў фонавым рэжыме ў подоболочки. Абалонка не чакае завяршэння працы каманды, і вяртаецца статус 0. Каманды будуць падзеленыя; выконваюцца паслядоўна; што абалонка чакае для кожнай каманды, каб завяршыць у сваю чаргу. Статус вяртання з'яўляецца статус выхаду апошняй выкананай каманды.

Аператары кіравання && і || Абазначым І спісы і АБО спісы, адпаведна. Спіс і мае выгляд

command1 && command2

Команда2 выконваецца тады і толькі тады, калі command1 вяртае статус выхаду нуль.

Спіс OR мае выгляд

command1 || command2

Команда2 выконваецца тады і толькі тады , калі command1 вяртае статус завяршэння ненулявога. Статус вяртання AND і OR спісаў з'яўляецца статус выхаду апошняй выкананай каманды ў спісе.

складовыя каманды

Каманда злучэння ўяўляе сабой адно з наступных дзеянняў :

(Спіс)

Спіс выконваецца ў подоболочках. Зменныя заданні і убудаваныя каманды, якія ўплываюць на навакольнае асяроддзе каманднага інтэрпрэтатара, не застаюцца ў сіле пасля завяршэння каманды. Статус вяртання з'яўляецца статус выхаду спісу.

{Спіс; }

Спіс проста выконваецца ў асяроддзі бягучай абалонкі. Спіс павінен заканчвацца сімвалам новай радкі або кропкай з коскі. Гэта вядома як каманда групы. Статус вяртання з'яўляецца статус выхаду спісу. Звярніце ўвагу , што ў адрозненне ад метасімвалаў (і), {і} з'яўляюцца зарэзерваванымі словамі і павінны адбыцца дзе зарэзерваваныя слова дазваляецца быць пазнанымі. Так як яны не выклікаюць разрыў словы, яны павінны быць аддзеленыя ад спісу прабеламі.

((Выраз))

Выраз вылічаецца ў адпаведнасці з правіламі , апісанымі ніжэй у раздзеле Арыфметычныя вылічэнні. Калі значэнне выразу ня роўнае нулю, вяртаецца статус 0; у адваротным выпадку вяртаецца статус 1. Гэта ў дакладнасці эквівалентна , каб «выраз».

[[Выраз]]

Вяртае статус 0 або 1 у залежнасці ад ацэнкі выразы ўмоўнага выразы. Выразы складаюцца з першасных , апісаных ніжэй у раздзеле умоўных выразаў. Слова расшчаплення і пашырэнне шляху не выконваюцца на словах паміж [[і]]; тыльды, параметры і зменных пашырэнне, арыфметычнае пашырэнне, каманда замена, замена працэсу, і выдаленне двукоссяў выконваюцца.

Калі == і! = Выкарыстоўваюцца аператары, радок справа аператара лічыцца ўзорам і падабраны ў адпаведнасці з правіламі , апісанымі ніжэй у раздзеле Pattern Matching. Вяртаецца значэнне роўна 0, калі радок адпавядае ці не адпавядае шаблоне, адпаведна, і 1 у адваротным выпадку. Любая частка малюнка можа быць складзена ў двукоссі, каб прымусіць яго быць узгоднены ў выглядзе радка.

Выразы могуць быць аб'яднаны з дапамогай наступных аператараў, пералічаных у парадку змяншэння прыярытэту:

(Выраз)

Вяртае значэнне выразу. Гэта можа быць выкарыстана, каб перавызначыць нармальны прыярытэт аператараў.

! выраз

Праўда , калі выраз фальшыва.

выражение1 && выражение2

Праўда , калі абодва выражение1 і expression2 праўдзівыя.

expression1 || выражение2 Праўда , калі ВЫРАЖЕНИЕ1 або выражение2 праўдзівае.

&& і || аператары не ацэньваюць expression2 , калі значэнне expression1 дастаткова для вызначэння вяртаецца значэння ўсяго ўмоўнага выразы.

для імя слове]; спіс спраў ; зроблена

Спіс слоў у наступных пашыраецца, генеруючы спіс элементаў. Імя зменнай усталёўваецца на кожны элемент гэтага спісу , у сваю чаргу, і спіс выконваецца кожны раз. Калі ў слове апушчана, то для каманды спісу разы выконваецца для кожнага пазіцыйнага параметру ўсталёўваюцца (гл ПАРАМЕТРАЎ ніжэй). Статус вяртання з'яўляецца статус выхаду апошняй каманды, якая выконваецца. Калі пашырэнне наступных пунктаў у выніках ў пустым спісе, ні адна з каманд не выконваюцца, і вяртаецца статус 0.

для ((expr1; expr2; выражение3)); спіс спраў ; зроблена

Ва- першых, арыфметычнае выраз выражение1 ацэньваецца ў адпаведнасці з правіламі , апісанымі ніжэй у раздзеле Арыфметычныя вылічэнні. Арыфметычнае выраз выражение2 затым вылічаецца некалькі разоў , пакуль яна не прымае значэнне нуль. Кожны раз , калі выражение2 вылічаецца ў ненулявое значэнне, спіс выконваецца і арыфметычнае выраз выражение3 ацэньваецца. Калі якое - небудзь выраз апушчана, то ён паводзіць сябе так , як быццам ён мае значэнне 1. вяртаецца значэння з'яўляецца статусам выхаду апошняй каманды ў спісе , які выконваецца, або ілжывай , калі якое - небудзь з выразаў з'яўляецца несапраўдным.

выберыце назву [словам]; спіс спраў ; зроблена

Спіс слоў у наступных пашыраецца, генеруючы спіс элементаў. Набор пашыраных слоў друкуецца на стандартнай памылкі, кожнаму з якіх папярэднічае шэраг. Калі ў слова прапушчана, пазіцыйныя параметры друкуюцца (гл ніжэй параметры). Запрашэнне PS3 затым адлюстроўваецца і лінія чытання з стандартнага ўводу. Калі лінія складаецца з шэрагу , адпаведнага аднаму з паказу слоў, тое значэнне імя вызначана нацыянальным гэтае слова. Калі радок пустая, словы і запрашэнне адлюстровываюцца зноў. Калі EOF чытаецца, то каманда завяршаецца. Любое іншае значэнне , лічаныя прычыны імя , якое будзе ўстаноўлена нулявое значэнне. Лінія чытання захоўваецца ў зменнай REPLY. Спіс выконваецца пасля кожнага выбару , пакуль каманда перапынак не выконваецца. Статус завяршэння выбару з'яўляецца статус выхаду апошняй выкананай каманды ў спісе, або нуль , калі не былі выкананы ні адна з каманд.

выпадак слова ў [[(] шаблон [| шаблон]

Каманда выпадак першага пашырае слова, і спрабуе супаставіць яго з кожным шаблонам , у сваю чаргу, выкарыстоўваючы тыя ж правілы, што і для супастаўлення імёнаў файлаў (гл Pathname пашырэння ніжэй). Калі выяўляецца супадзенне, то адпаведны спіс выконваецца. Пасля першага матчу, ня наступныя матчы не спрабавалі. Статус выхаду роўны нулю, калі ніякай ўзор не адпавядае. У адваротным выпадку, статус выхаду апошняй каманды , выкананай у спісе.

калі спіс; затым спіс; [Эліф спіс; затым спіс; ] ... [яшчэ спіс; ] фі

Калі спіс будзе выкананы. Калі яго статус выхаду роўны нулю, то спіс будзе выкананы. У адваротным выпадку, кожны спіс Эліф выкананы ў сваю чаргу, і калі яго статус выхаду роўны нулю, то адпаведны затым спіс выконваецца і каманда завяршаецца. У адваротным выпадку спіс яшчэ выконваецца, калі такі маецца. Статус выхаду з'яўляецца статус выхаду апошняй выкананай каманды, або нуль, калі ні адно з умоў не тэсціравалі дакладна.

у той час як спіс; спіс спраў ; зроблена

да спісу; спіс спраў ; зроблена

Каманда, бесперапынна выконвае спіс рабіць, пакуль апошняя каманда ў спісе вяртае статус выхаду нуль. Да каманда ідэнтычная камандзе ў той час, за выключэннем таго, што тэст адмаўляецца; спіс рабіць выконваюцца, пакуль апошняя каманда ў спісе вяртае статус завяршэння ненулявога. Статус выхаду і час да каманды з'яўляецца статус выхаду з каманды спісу апошні раз ? Выконваецца, або нуль , калі ні адзін не быў выкананы.

[Функцыя] імя () {спіс; }

Гэта вызначае функцыю з імем імя. Цела функцыі спіс каманд паміж {і}. Гэты спіс выконваецца кожны раз , калі імя паказваецца як імя просты каманды. Статус выхаду функцыі з'яўляецца статус выхаду апошняй каманды, выкананай у целе. (Глядзі ФУНКЦЫІ ніжэй.)

КАМЭНТАРЫ

У не-інтэрактыўнай абалонкі, або інтэрактыўную абалонку , у якой параметр interactive_comments да shopt убудаванай каманды ўключаная (гл SHELL BUILTIN КАМАНДЫ ніжэй), слова , якое пачынаецца з # выклікае гэтае слова , а ўсе астатнія сімвалы ў гэтай радку ігнаруюцца. Інтэрактыўная абалонка без опцыі interactive_comments ўключаная не дазваляе каментары. Опцыя interactive_comments ўключана па змаўчанні ў інтэрактыўных абалонках.

кватаванне

Цытаванне выкарыстоўваюцца для выдалення спецыяльнага значэння пэўных сімвалаў або слоў у абалонку. Цытаванне можна выкарыстоўваць для адключэння спецыяльнай апрацоўкі для адмысловых знакаў, каб прадухіліць зарэзерваваныя словы ад прызнаюцца ў якасці такога, а таксама для прадухілення пашырэння параметраў.

Кожны з метасімвалаў , пералічаных вышэй у раздзеле ВЫЗНАЧЭННЯЎ мае асаблівае значэнне для абалонкі і павінен быць паказаны , калі яна будзе прадстаўляць сябе.

Калі сродкі пашырэння каманды гісторыі выкарыстоўваюцца, характар пашырэння гісторыі, звычайна! , Павінны быць заключаны ў двукоссі, каб прадухіліць пашырэнне гісторыі.

Ёсць тры цытуючы механізмаў: ўцёкі сімвалаў, адзінкавыя двукоссі і двайныя двукоссі.

Ня-цытуемы ўжыць зваротны слэш (\) з'яўляецца маскіравалым. Ён захоўвае літаральнае значэнне наступнага сімвала, які варта, за выключэннем <радкі>. Калі вырасце пару \ <пераклад радка>, і зваротны слэш не сам двукоссямі, то \ <пераклад радка> разглядаецца як працяг радкі (гэта значыць, ён выдаляецца з уваходнага струменя і эфектыўна ігнаруюцца).

Агароджваюць знакаў у адзінарныя двукоссі захоўвае літаральнае значэнне кожнага сімвала ў двукоссях. Адзінкавая двукоссе не можа адбывацца паміж адзінарнымі двукоссямі, нават калі перад зваротным касой рысай.

Агароджваюць сімвалы ў падвойных двукоссях захоўвае літаральнае значэнне ўсіх знакаў у двукоссях, за выключэннем $, `, і \. Сімвалы $ і `захоўваюць сваё асаблівае значэнне ў падвойныя двукоссі. Зваротны слэш захоўвае свой асаблівы сэнс толькі тады , калі ідуць адзін з наступных сымбаляў: $, `,", \ або <пераклад радка> двайны двукоссі можа быць складзена ў двукоссі ў падвойныя двукоссі , папярэднічаючы яго адваротным касой рысай ..

Спецыяльныя параметры * і @ маюць асаблівае значэнне , калі ў падвойных двукоссях (гл ніжэй параметры).

Словы выгляду $ «радок» разглядаюцца асобна. Слова пашыраецца да радка, з адваротнага касой рысай герояў замененыя ў прадпісаных ў тэхнічных заданнях па стандарце ANSI C. Кіравальныя паслядоўнасці зваротнай касой рысы, калі яны прысутнічаюць, дэкадуе наступным чынам:

\ а

абвесткі (званок)

\ б

вяртанне на адну пазіцыю

\ е

маскіравалым

\ е

прагон старонкі

\ п

новая радок

\ г

зварот карэткі

\ т

гарызантальная табуляцыя

\ v

вертыкальная табуляцыя

\\

зваротны слэш

\ »

апостраф

\ NNN

восем-бітны сімвал, значэнне якога васьмярковай значэнне NNN ( ад адной да трох лічбаў)

\ Х HH

восем-бітны сімвал, значэнне якога шаснаццатковае значэнне HH (адна ці дзве шаснаццаткавыя лічбы)

\ С й

control- х сімвалаў

Пашыраны вынік у адзінарных двукоссях, як быццам знак даляра не прысутнічаў.

У падвойных двукоссях радок папярэднічае знак даляра ($) прымусіць радок для перакладу ў адпаведнасці з бягучай лакаллю. Калі бягучая лакаль C або POSIX, знак даляра ігнаруецца. Калі радок перакладзеная і заменена, гэта падвойныя двукоссі.

ПАРАМЕТРЫ

Параметр ўяўляе сабой аб'ект , які захоўвае значэння. Гэта можа быць імя, нумар, або адзін з адмысловых знакаў , пералічаных ніжэй у раздзеле спецыяльных параметраў. Для мэт оболочечных, пераменная з'яўляецца параметрам , які пазначаецца імем. Пераменная мае значэнне і нуль або больш атрыбутаў. Атрыбуты прысвойваюцца з дапамогай DECLARE каманды наканаванага (гл абвяшчаюць ніжэй у SHELL BUILTIN каманды).

Параметр усталёўваецца, калі яно было прысвоена значэнне. Пустая радок з'яўляецца дапушчальным значэннем. Пасля таго, як пераменная ўстаноўлена, яна можа быць знята толькі з дапамогай адключанай убудаванай каманды (гл абалонкай убудаваных каманд ніжэй).

Пераменная можа быць прызначаны на зацвярджэнні формы

Імя = [значэнне]

Калі значэнне не зададзена, зменнай прысвойваецца пустая радок. Усе значэння падвяргаюцца тыльды, параметр і зменных, падстаноўкі каманд, арыфметычнае пашырэнне і выдаленне двукоссяў (гл ПАШЫРЭННЕ ніжэй). Калі зменная мае свой набор атрыбутаў цэлы лік, тое значэнне падлягае арыфметычнае пашырэнне , нават калі $ ((...)) пашырэнне не выкарыстоўваецца (гл Арыфметыка пашырэння ніжэй). Слова расшчаплення не вырабляецца, за выключэннем «$ @» , як апісана ніжэй у раздзеле спецыяльных параметраў. Пашырэнне Pathname не выконваецца. Аператары прысвойвання могуць таксама з'яўляцца ў якасці аргументаў Абвяшчэння набрана, экспарту, толькі для чытання, і мясцовыя ўбудаваных каманд.

пазіцыйныя параметры

Пазіцыйны параметр ўяўляе сабой параметр , які пазначаецца адной ці больш лічбаў, выдатных ад адной лічбы 0. Пазіцыйныя параметры прысвойваюцца з аргументаў інтэрпрэтатара пры выкліку, і можа быць пераназначаны з дапамогай каманды набору ўбудаваных. Пазіцыйныя параметры не могуць быць прызначаныя з аператарамі прысвойвання. Пазіцыйныя параметры часова замяняюцца , калі функцыя абалонкі выконваецца (гл ФУНКЦЫІ ніжэй).

Калі пазіцыйны параметр , які складаецца з больш чым адной лічбай пашыраецца, ён павінен быць складзены ў дужкі (гл ПАШЫРЭННЕ ніжэй).

спецыяльныя параметры

Абалонкі апрацоўваюць некалькі параметраў адмыслова. можа спасылацца толькі гэтыя параметры; аднясенне да іх не дапускаецца.

*

Замяняецца пазіцыйнымі параметрамі, пачынаючы з першага. Калі пашырэнне адбываецца ў падвойных двукоссях, яна пашыраецца да аднаго слова са значэннем кожнага параметру , падзеленых першым сімвалам спецыяльнай зменнай IFS. Гэта значыць, «$ *» эквівалентна «$ 1 з $ 2 з ...», дзе з першым сімвалам значэння зменнай IFS. Калі МФС не ўстаноўлены, то параметры падзяляюцца прабеламі. Калі IFS мае нулявое значэнне, параметры злучаюцца без прамежкавых сепаратараў.

@

Замяняецца пазіцыйнымі параметрамі, пачынаючы з першага. Калі адбываецца пашырэнне ў падвойных двукоссях, кожны параметр пашыраецца да асобнага слова. Гэта значыць, «$ @» эквівалентна «$ 1» «$ 2» ... Калі няма ні аднаго пазіцыйных параметраў, «$ @» і $ @ пашырэнне ні да чаго (гэта значыць, яны выдаляюцца).

#

Пашырае лік пазіцыйных параметраў у дзесятковай сістэме.

?

Раскрываецца ў статус апошняга выкананага пярэдняга плана трубаправода.

-

Раскрываецца ў бягучыя сцягі опцый , як паказана пры выкліку, з дапамогай убудаванай каманды набору, або тыя , якія з дапамогай самай абалонкі (напрыклад, опцыя -i).

$

Раскрываецца ў ідэнтыфікатар працэсу абалонкі. У () подоболочке, яна пашыраецца ў ідэнтыфікатар працэсу бягучай абалонкі, ня подоболочки.

!

Раскрываецца ў ідэнтыфікатар працэсу каманды апошняга выкананага фону (асінхроннай).

0

Раскрываецца ў імя абалонкі або сцэнара абалонкі. Гэта усталёўваецца пры ініцыялізацыі абалонкі. Калі Баш выклікаецца з файлам каманд, $ 0 усталёўваецца на імя гэтага файла. Калі Баш запускаецца з опцыяй -c, то $ 0 усталёўваецца на першы аргумент пасля таго , як радок , якая будзе выканана, калі адзін прысутнічае. У адваротным выпадку, ён усталёўваецца на імя файла , які выкарыстоўваецца для выкліку Баш, як зададзена аргументам нуль.

_

Пры запуску абалонкі, ўстаноўлена імя абсалютнага файла абалонка ці сцэнар абалонкі выконваюцца, як прынятыя ў спісе аргументаў. Пасля, пашыраецца да апошняга аргументу папярэдняй каманды, пасля пашырэння. Таксама усталёўваецца роўным поўнага імя файла кожнай выкананай каманды і змяшчаецца ў сераду, экспартуемай у гэтай камандзе. Пры праверцы пошты, гэты параметр утрымоўвае імя файла пошты ў цяперашні час правяраецца.

зменныя абалонкі

Наступныя зменныя задаюцца абалонкай:

BASH

Раскрываецца ў поўнае імя файла , які выкарыстоўваецца для выкліку дадзенага асобніка Баш.

BASH_VERSINFO

Толькі для чытання пераменнага масіва, члены якога змяшчае інфармацыю аб версіі для дадзенага асобніка Баша. Значэння, прысвоеныя членам масіва наступным чынам:

BASH_VERSINFO [0]

Асноўны нумар версіі (рэліз).

BASH_VERSINFO [1]

Малодшы нумар версіі (версія).

BASH_VERSINFO [2]

Узровень патча.

BASH_VERSINFO [3]

Зборкі версіі.

BASH_VERSINFO [4]

Статус вызвалення (напрыклад, beta1).

BASH_VERSINFO [5]

Значэнне MACHTYPE.

BASH_VERSION

Раскрываецца ў радок , якая апісвае версію гэтага асобніка Баш.

COMP_CWORD

COMP_LINE

Бягучая камандны радок. Гэтая пераменная даступная толькі ў функцыях абалонкі і вонкавых каманд , выкліканых з дапамогай праграмуемых сродкаў завяршэння (гл Праграмуемы Завяршэнне ніжэй).

COMP_POINT

COMP_WORDS

Пераменная масіва (гл Масівы ніжэй) , які складаецца з асобных слоў у бягучай камандным радку. Гэтая пераменная даступная толькі ў функцыях абалонкі , выкліканых праграмуемымі аб'ектаў завяршэння (гл Праграмуемы Выкананы ніжэй).

DIRSTACK

Пераменная масіва (гл Масівы ніжэй) , які змяшчае бягучае змесціва стэка каталогаў. Каталогі з'яўляюцца ў стэку ў парадку , яны адлюстроўваюцца з дапамогай убудаваных дырэкторый. Прызначэнне членаў гэтага пераменны масіва можа быць выкарыстана для змены каталогаў ўжо ў стэку, але Pushd і Popd ўбудаваных каманды павінны быць выкарыстаны для дадання і выдалення каталогаў. Прызначэнне гэтай зменнай не зменіць бягучы каталог. Калі DIRSTACK не зададзены, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

EUID

Раскрываецца ў эфектыўны ідэнтыфікатар карыстальніка бягучага карыстальніка, ініцыялізуюцца пры запуску абалонкі. Гэтая пераменная толькі для чытання.

имя_функции

Назва любы дадзены момант, выконваючага функцыі абалонкі. Гэтая пераменная існуе толькі тады, калі функцыя абалонкі выконваецца. Адлічэнні ў имя_функцию не маюць ніякага эфекту і вярнуць стан памылкі. Калі имя_функции мае зададзенай, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

ГРУПЫ

Пераменная масіў, які змяшчае спіс гуртоў, у якіх бягучы карыстальнік з'яўляецца членам. Заданні для груп не маюць ніякага эфекту і вярнуць стан памылкі. Калі групы не ўстаноўлена, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

HISTCMD

Гісторыя нумар, або індэкс ў спісе гісторыі, бягучай каманды. Калі HISTCMD не зададзены, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

HOSTNAME

Аўтаматычна ўсталёўваецца на імя бягучага хаста.

HOSTTYPE

Аўтаматычна ўсталёўваецца на радок , якая адназначна апісвае тып машыны , на якой Баш выканання. Значэнне па змаўчанні залежыць ад сістэмы.

LINENO

Кожны раз, калі спасылаецца гэты параметр, абалонка замяняе дзесятковы лік, якое прадстаўляе бягучы парадкавы нумар радка (пачынаючы з 1) у сцэнары або функцыі. Калі ні ў сцэнарыі або функцыі, то падстаўляецца не гарантуецца быць значным. Калі LINENO не зададзены, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

MACHTYPE

Аўтаматычна ўсталёўваецца на радок , якая цалкам апісвае тып сістэмы , на якой Баш выконваецца, у стандартным фармаце працэсар-кампанія-сістэма GNU. Значэнне па змаўчанні залежыць ад сістэмы.

OLDPWD

Папярэдні працоўны каталог, усталяваны камандай кд.

OPTARG

Значэнне апошняга аргументу опцыі , апрацаваны ў getopts каманды убудаванага (гл АБАЛОНКА убудаваных каманд ніжэй).

OPTIND

Індэкс наступнага аргументу, якая падлягае апрацоўцы з дапамогай getopts каманды убудаванай (гл абалонкай убудаваных каманд ніжэй).

OSTYPE

Аўтаматычна ўсталёўваецца на радок , якая апісвае аперацыйнай сістэмы , на якой Баш выканання. Значэнне па змаўчанні залежыць ад сістэмы.

PIPESTATUS

Пераменная масіва (гл Масівы ніжэй) , які змяшчае спіс значэнняў стану выхаду з працэсаў у найбольш нядаўна выкананым на пярэднім плане трубаправода (які можа ўтрымліваць толькі адну каманду).

PPID

Ідэнтыфікатар працэсу бацькі абалонкі. Гэтая пераменная толькі для чытання.

PWD

Бягучы працоўны каталог, усталяваны камандай кд.

RANDOM

Кожны раз, калі спасылаецца гэты параметр, выпадковае цэлае лік у дыяпазоне ад 0 да 32767 генеруецца. Паслядоўнасць выпадковых лікаў можа быць ініцыялізаваны шляхам прысваення значэння да выпадковага. Калі RANDOM не ўсталяваная, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

Адказам

Усталюеце ў радок уводу для чытання каманды чытання ўбудаваных , калі аргументы не пастаўляецца.

СЕКУНД

Кожны раз, калі спасылаецца гэты параметр, колькасць секунд з моманту выкліку абалонкі вяртаецца. Калі значэнне прысвойваецца СЕКУНД, вернутае значэнне пры наступных спасылках колькасць секунд з моманту прысваення плюс прысвоенае значэнне. Калі СЕКУНД не ўсталяваная, яна губляе свае спецыяльныя ўласцівасці, нават калі ў далейшым пераўстанаўліваецца.

SHELLOPTS

Двукроп'я спісу дазволеных опцый абалонкі. Кожнае слова ў спісе з'яўляецца важкім аргументам для опцыі -o каманды набору ўбудаваных (гл SHELL BUILTIN КАМАНДЫ ніжэй). Параметры , якія ўваходзяць у SHELLOPTS з'яўляюцца тыя , якія прадстаўлены як на мностве па -o. Калі гэтая пераменная знаходзіцца ва ўмовах , калі Баш запуску, кожны варыянт абалонкі ў спісе будзе ўключаны , перш чым чытаць якія - небудзь файлы запуску. Гэтая пераменная толькі для чытання.

SHLVL

Павялічваецца на адзінку кожны раз пры запуску асобніка Баш.

UID

Раскрываецца ў ідэнтыфікатар карыстальніка бягучага карыстальніка, ініцыялізуюцца пры запуску абалонкі. Гэтая пераменная толькі для чытання.

Наступныя зменныя выкарыстоўваюцца абалонкай. У некаторых выпадках, баш прысвойвае значэнне па змаўчанні зменнай; гэтыя выпадкі адзначаны ніжэй.

BASH_ENV

Калі гэты параметр усталяваны , калі Баш выконвае сцэнар абалонкі, яго значэнне інтэрпрэтуецца як імя файла , які змяшчае каманды для ініцыялізацыі абалонкі, як і ў ~ / .bashrc. Значэнне BASH_ENV падвяргаюць пашырэнне параметраў, падстаноўкі каманд і арыфметычнае пашырэнне перад тым , як інтэрпрэтуюцца як імя файла. PATH не выкарыстоўваецца для пошуку імя выніковага файла.

CDPATH

Шлях пошуку для каманды кд. Гэта двукроп'я спіс каталогаў , у якіх абалонка выглядае для каталогаў прызначэння , указаных камандай кд. Значэнне выбаркі ":. ~: / USR".

Калоны

Выкарыстоўваецца выбару убудаванай каманды , каб вызначыць шырыню тэрмінала пры друку спісы выбару. Аўтаматычна ўсталёўваецца пры атрыманні SIGWINCH.

COMPREPLY

Пераменная масіва , з якога Баш чытае магчымыя завяршэння , генерыруюцца функцыя абалонкі , выкліканую праграмуемым завяршэнне аб'екта (гл Праграмуемыя Завяршэнне ніжэй).

FCEDIT

Рэдактар па змаўчанні для каманды ФК убудаваныя.

FIGNORE

Двукроп'я спісу суфіксаў ігнараваць пры выкананні завяршэння імя файла (гл БІБЛІЯТЭКІ READLINE ніжэй). Імя файла , чый суфікс адпавядае аднаму з элементаў у FIGNORE выключаецца з спісу адпаведных імёнаў файлаў. Значэнне выбаркі «.o: ~».

GLOBIGNORE

Двукроп'я спісу шаблонаў, якія вызначаюць набор імёнаў файлаў, якія будуць ігнаравацца імёнамі файлаў. Калі імя файла адпавядае па шаблоне пашырэння шлях таксама адпавядае аднаму з шаблонаў ў GLOBIGNORE, ён выдаляецца з спісу супадзенняў.

HISTCONTROL

Калі ўсталявана значэнне ignorespace, радкі, якія пачынаюцца з знака прабелу не ўводзяцца ў спіс гісторыі. Калі ўсталявана значэнне ignoredups, радкі , якія адпавядаюць апошняй гісторыі радкі не ўвайшлі. Значэнне ignoreboth спалучае ў сабе два варыянты. Калі ня ўсталявана, або калі ўсталявана любое іншае значэнне , чым тыя вышэй, усе радкі , прачытаныя сінтаксічным аналізатарам, захоўваюцца ў спісе гісторыі, з улікам кошту HISTIGNORE. Функцыя гэтай зменнай замяняецца HISTIGNORE. Другія і наступныя радкі каманды злучэння шматрадковага ня правяраюцца, і дадаюцца да гісторыі , незалежна ад значэння HISTCONTROL.

HISTFILE

Імя файла , у якім камандзе гісторыі захоўваецца (гл ГІСТОРЫІ ніжэй). Значэнне па змаўчанні ~ / .bash_history. Калi не ўстаноўлена, гісторыя каманд не захоўваецца, калі інтэрактыўныя выхадаў абалонкі.

HISTFILESIZE

Максімальную колькасць радкоў, якія змяшчаюцца ў файле гісторыі. Калі гэтая пераменная прысвойваецца значэнне, файл гісторыі усекается, калі гэта неабходна, каб змяшчаць не больш за тое колькасці ліній. Значэнне па змаўчанні роўна 500. Файл гісторыі таксама усекается да гэтага памеру пасля запісу яго, калі інтэрактыўныя выхадаў абалонкі.

HISTIGNORE

Двукроп'я спісу шаблонаў, якія выкарыстоўваюцца, каб вырашыць, якія каманды лініі павінны быць захаваны ў спісе гісторыі. Кожны шаблон замацаваны ў пачатку радка і павінен адпавядаць поўнай лініі (без няяўна `* 'прыкладаецца). Кожны шаблон правяраецца на лінію пасля праверкі , названыя HISTCONTROL прымяняюцца. У дадатак да звычайнага шаблоне абалонкі адпаведных знакаў, `& 'адпавядае папярэдняй гісторыі лініі. `& 'Могуць быць экранаваныя з дапамогай зваротнай касой рысы; зваротная касая выдалены перад запалкай. Другія і наступныя радкі каманды злучэння шматрадковага ня правяраюцца, і дадаюцца да гісторыі , незалежна ад значэння HISTIGNORE.

HISTSIZE

Колькасць каманд , каб памятаць у гісторыі каманд (гл ГІСТОРЫІ ніжэй). Значэнне па змаўчанні роўна 500.

HOME

Хатні каталог бягучага карыстальніка; аргумент па змаўчанні для каманды кд ўбудаваных. Значэнне гэтай зменнай таксама выкарыстоўваецца пры выкананні тыльды.

HOSTFILE

Зьмяшчае назву файла ў тым жа фармаце, што і / і г.д. / хасты , якія павінны быць прачытаныя , калі абалонка павінна завяршыць імя хаста. Спіс магчымых завяршэнняў імя хаста можа быць зменены падчас працы абалонкі працуе; наступнае завяршэнне часу імя хост спробы пасля значэння змяняюцца, баш дадае змесціва новага файла ў існуючым спіс. Калі HOSTFILE усталяваны, але не мае ніякага значэння, баш спрабуе чытаць / і г.д. / хасты , каб атрымаць спіс магчымых завяршэнняў імя хаста. Калі HOSTFILE знятая з аховы, спіс імя хаста чысціцца.

IFS

Сепаратар Ўнутранага поля, якое выкарыстоўваецца для падзелу слоў пасля пашырэння і падзяліць радкі на словы з убудаванай камандай чытання. Значэнне па змаўчанні роўна `` <прабел> <табуляцыя> <пераклад радка> ''.

IGNOREEOF

Кіруе дзеянне інтэрактыўнай абалонкі на атрыманні EOF характару ў якасці адзінага уваходнага сігналу. Калі ўсталявана, то значэнне ўяўляе сабой лік паслядоўных сімвалаў EOF , якія павінны быць надрукаваныя ў якасці першых знакаў на ўваходных лініі перад Баш выхадамі. Калі зменная існуе , але не мае лічбавага значэння, ці не мае значэння, значэнне па змаўчанні роўна 10. Калі ён не існуе, EOF азначае канец ўводу ў абалонку.

INPUTRC

Імя файла для файла запуску Readline, замяняюцца па змаўчанні ~ / .inputrc (гл БІБЛІЯТЭКА READLINE ніжэй).

LANG

Выкарыстоўваецца для вызначэння катэгорыі лакалі для любой катэгорыі не спецыяльна абранай з зменнай , пачынаючы з LC_.

LC_ALL

Гэтая пераменная перавызначаць значэнне LANG і любы іншы зменнай LC_ з указаннем катэгорыі лакалі.

LC_COLLATE

Гэтая пераменная вызначае парадак сартавання, які выкарыстоўваецца пры сартаванні вынікаў пашырэння імя шляху, і вызначае паводзіны выразаў дыяпазону, класаў эквівалентнасці, і супастаўлення паслядоўнасцяў ўнутры імёнаў файлаў і супастаўлення з узорам.

LC_CTYPE

Гэтая пераменная вызначае інтэрпрэтацыю знакаў і паводзін класаў знакаў ўнутры імёнаў файлаў і супастаўлення з узорам.

LC_MESSAGES

Гэтая пераменная вызначае лакаль , якую выкарыстоўвае для перакладу радкоў у падвойных двукоссях , якім папярэднічае сімвал $.

LC_NUMERIC

Гэтая пераменная вызначае катэгорыю моўных стандартаў, якія выкарыстоўваюцца для фарматавання лікаў.

ЛІНІІ

Выкарыстоўваецца выбару убудаванай каманды для вызначэння даўжыні слупка для друку спісаў выбару. Аўтаматычна ўсталёўваецца пры атрыманні SIGWINCH.

MAIL

Калі гэты параметр усталяваны на імя файла і зменная MAILPATH не ўстаноўлены, баш інфармуе карыстальніка аб прыбыцці пошты ў паказаным файле.

MAILCHECK

Вызначае , як часта (у секундах) Баш правярае пошту. Значэнне па змаўчанні складае 60 секунд. Калі прыйшоў час, каб праверыць пошту, абалонка робіць гэта перад высновай першаснага запрашэння. Калі гэтая пераменная не ўстаноўлена, ці ўсталяваная на значэнне, якое не з'яўляецца лікам больш або роўна нулю, абалонка адключае праверку пошты.

MAILPATH

Двукроп'ямі спіс імёнаў файлаў, якія павінны быць правераны на пошту. Паведамленне для друку, калі пошта прыходзіць у вызначаны файл можа быць вызначаны, адлучаючы імя файла з паведамлення з `?». Пры выкарыстанні ў тэксце паведамлення, $ _ замяняецца на імя бягучага файла пошты. прыклад:

MAILPATH = '/ вар / пошта / bfox " У вас ёсць пошта" :? ~ / Абалонка пошты "$ _ ёсць пошта!"'

Bash прадастаўляе значэнне па змаўчанні для гэтай зменнай, але размяшчэнне карыстацкіх паштовых файлаў , якія ён выкарыстоўвае гэта залежыць ад сістэмы (напрыклад, / вар / пошты / $ USER).

Opterr

Калі ўсталявана ў значэнне 1, баш адлюстроўвае паведамленні пра памылкі , генераваных getopts каманды убудаванай (гл АБАЛОНКА убудаваных каманд ніжэй). Opterr ініцыялізуецца 1 кожны раз , калі абалонка выклікаецца або сцэнар абалонкі выконваецца.

ШЛЯХ

Шлях для пошуку каманд. Гэта двукроп'ямі спіс каталогаў , у якіх абалонка шукае каманды (гл Выкананне каманд ніжэй). Шлях па змаўчанні залежыць ад сістэмы, і ўсталёўваецца адміністратарам , які ўсталёўвае Баш. Агульнае значэнне `` / USR / гну / бен: / USR / мясцовыя / бен: / USR / UCB: / бен: / USR / бен:. ''.

POSIXLY_CORRECT

Калі гэтая пераменная знаходзіцца ў асяроддзі , калі пачынаецца Баш, абалонка пераходзіць у рэжым Posix перад чытаннем файлаў запуску, як калі б --posix варыянт выкліку былі пастаўлены. Калі ён усталяваны ў той час як абалонка запушчана, баш уключае рэжым Posix, як калі каманда ўсталяваная -o POSIX была выкананая.

PROMPT_COMMAND

Калі ўсталявана, то значэнне выконваецца як каманда перад выдачай кожнага першаснага запрашэння.

PS1

Значэнне гэтага параметру пашыраецца (гл PROMPTING ніжэй) і выкарыстоўваецца ў якасці асноўнай радкі запрашэння. Значэнне па змаўчанні `` \ s- \ v \ $ ''.

PS2

Значэнне гэтага параметру пашыраецца , як і PS1 , і выкарыстоўваецца ў якасці другаснай радкі запрашэння. Значэнне па змаўчанні ``> ''.

PS3

Значэнне гэтага параметру выкарыстоўваецца ў якасці радка для выбару каманды (гл SHELL граматыку вышэй).

PS4

Значэнне гэтага параметру пашыраецца , як з PS1 і значэнне друкуецца перад кожнай камандай Баш дысплеяў падчас трасіроўкі выканання. Першы знак PS4 реплицируются некалькі разоў, па меры неабходнасці, каб паказаць некалькі узроўняў ўскосна. Значэнне па змаўчанні `` + ''.

TIMEFORMAT

Значэнне гэтага параметру выкарыстоўваюцца ў якасці фармату радкі , задае , як павінна адлюстроўвацца інфармацыя аб сінхранізацыі для трубаправодаў з прэфіксам часу зарэзерваваных словам. Сімвал% ўводзіць кіравальную паслядоўнасць , якая пашыраецца да значэння часу або іншай інфармацыі. Кіравальныя паслядоўнасці і іх значэння наступным чынам; дужкі пазначаюць неабавязковыя часткі.

%%

Литерал%.

% [Р] [л] Р

Мінулы час у секундах.

% [Р] [л] U

Колькасць секунд CPU ў карыстацкім рэжыме.

% [Р] [л] S

Колькасць секунд CPU, праведзеных у сістэмным рэжыме.

% P

Працэнт працэсара, вылічаецца як (% U +% S) /% R.

Дадатковы р лічбай з указаннем дакладнасці, колькасць дробавых лічбаў пасля дзесятковай кропкі. Значэнне 0 не выклікае дзесятковай кропкі або фракцыі, які будзе выводзіцца. У лепшым выпадку тры месцы пасля коскі можа быць паказана; значэння р больш , чым 3 замяняюцца на 3. Калі р ня зададзена, то значэнне 3 выкарыстоўваецца.

Дадатковы л вызначае больш доўгі фармат, уключаючы хвіліны, формы ММ м СС. FF с. Велічыня р вызначае , з'яўляецца Ці ці не ўключаная фракцыя.

Калі гэтая зменная не зададзена, баш дзейнічае як калі б яна мела значэнне $ '\ nreal \ т% 3LR \ Nuser \ т% 3LU \ Nsys% 3LS'. Калі значэнне роўна нулю, не адлюстроўваецца інфармацыя сінхранізацыі. Апушчаны новага радка дадаецца, калі адлюстроўваецца радок фармату.

TMOUT

Калі ўсталявана значэнне больш за нуль, TMOUT трактуецца як тайм - аўт па змаўчанні для чытання убудаванай каманды . Выбраць каманду спыняецца , калі ўваход не паступае пасля TMOUT секунд , калі ўваход паступае з тэрміналу. У інтэрактыўнай абалонкі, значэнне інтэрпрэтуецца як лік секунд чакання ўводу пасля выдачы першаснага запрашэння. Bash заканчваецца пасля чакання ў працягу гэтай колькасці секунд , калі ўваход не паступае.

auto_resume

Гэтая пераменная кіруе тым, як абалонка ўзаемадзейнічае з карыстацкага элемента кіравання і працы. Калі гэтая пераменная ўстаноўлена, аднаго слова простыя каманды без перанакіраваньняў разглядаюцца ў якасці кандыдатаў на аднаўленне існуючага спыненым задання. Там няма ніякай двухсэнсоўнасці дапускаецца; калі ёсць больш чым адна праца, пачынаючы са радком тыпізаваных, заданне апошняга доступу абрана. Імя спыненым заданні, у гэтым кантэксце, з'яўляецца камандным радком , якая выкарыстоўваецца для яго запуску. Калі ўсталявана на значэнне дакладнай, радок пастаўляецца павінна супадаць з імем спыненым заданні дакладна; калі ўсталяваная падрадок, радок пастаўляецца павінна адпавядаць падрадкоў імя спыненым задання. Значэнне падрадка забяспечвае функцыянальнасць , аналагічную%? Ідэнтыфікатар заданні (гл JOB CONTROL ніжэй). Калі ўсталявана любое іншае значэнне, уведзеная радок павінна быць прэфіксам імя спыненым заданні ў; гэта забяспечвае функцыянальнасць , аналагічную ідэнтыфікатар% працоўных месцаў.

histchars

Два ці тры сімвала , якія кантралююць пашырэнне гісторыі і лексемизацию (гл HISTORY пашыраную ніжэй). Першы знак з'яўляецца сімвалам пашырэння гісторыі, сімвал , які сігналізуе аб пачатку пашырэння гісторыі, як правіла , `! ». Другі сімвал з'яўляецца хуткі характар замяшчэння, які выкарыстоўваецца як скарачэнне для паўторнага запуску папярэдняй каманды ўвайшлі, замяніўшы адзін радок за іншы ў камандзе. Па змаўчанні `^». Неабавязковы трэці сімвал з'яўляецца сімвал , які паказвае на тое, што астатняя частка радка з'яўляецца каментаром , калі выявіў , як першы знак словы, звычайна '# ». Знак каментара гісторыі выклікае замену гісторыі прапускаюцца для астатніх слоў на радку. Гэта не абавязкова выклікае сінтаксічны разбор абалонкі для лячэння астатняй часткі радка як каментар.

масівы

Bash прадастаўляе аднамерны пераменны масіў. Любая зменная можа быць выкарыстана ў якасці матрыцы; абвясціць убудаваны відавочным чынам абвясціць масіў. Там няма максімальнага абмежавання на памер масіва, ні якое-небудзь патрабаванне, каб члены быць праіндэксаваныя або прызначанага сумежна. Масівы індэксуюцца з выкарыстаннем цэлых лікаў і нуля.

Масіў ствараецца аўтаматычна , калі якая - небудзь пераменная прысвойваецца , выкарыстоўваючы імя сінтаксісу [індэкс] = значэнне. Ніжні індэкс разглядаецца як арыфметычнае выраз , якое павінна ацаніць на лік , большая ці роўнае нулю. Каб відавочна абвясціць масіў, выкарыстоўвайце абвясціць -a імя (гл SHELL BUILTIN КАМАНДЫ ніжэй). абвясціць -a імя [індэкс] таксама прынята; індэкс ігнаруецца. Атрыбуты могуць быць вызначаны для пераменнага масіва з дапамогай аб'яўляць і толькі для чытання ўбудаваных каманд. Кожны атрыбут прымяняецца да ўсіх членам масіва.

Масівы прызначаюцца з выкарыстаннем злучэння прысвойвання імя = (значэнне 1 ... значэнне п), дзе кожнае значэнне мае выгляд [індэкс] = радок. Патрабуецца толькі радок. Калі дадатковыя кранштэйны і індэкс пастаўляюцца, што індэкс прысвойваецца; у адваротным выпадку індэкс элемента прысвоенага апошні індэкс прызначаны ў заяве плюс адзін. Індэксаванне пачынаецца з нуля. Гэты сінтаксіс таксама прынята абвяшчайце убудаванай каманды. Асобныя элементы масіва могуць быць прысвоены з выкарыстаннем імя [індэкс] = сінтаксіс значэння , уведзеныя вышэй.

Незаданные убудаваная каманда выкарыстоўваецца для знішчэння масіваў. зададзена імя [індэкс] знішчае элемент масіва з індэксам азначніка. зададзена імя, дзе імя з'яўляецца масівам, або адключанага імя [індэкс], дзе індэкс з'яўляецца * ці @, выдаляе ўвесь масіў.

Заяўляюць, мясцовыя, і толькі для чытання кожны прымае убудаваныя каманды опцыю -a , каб паказаць масіў. Чытання ўбудаваных прымае параметр -a , каб прызначыць спіс слоў , прачытаных з стандартнага ўводу ў масіў. Набор і абвясціць убудаваныя функцыі масіў значэнняў адлюстравання такім чынам , што дазваляе ім быць паўторна выкарыстаны ў якасцi заданняў.

ПАШЫРЭННЕ

Пашырэнне выконваецца ў камандным радку пасля таго, як ён быў разбіты на словы. Ёсць сем відаў пашырэння выконваецца: пашырэнне распоркі, тыльды, параметраў і зменных пашырэння, падстаноўкі каманд, арыфметычнае пашырэнне, разбіццё слоў і імёнаў файлаў.

Парадак пашырэння з'яўляецца: пашырэнне дужкі, тыльды, параметр пераменнага і арыфметычнае пашырэнне і падстаноўкі каманд (зроблена ў модзе злева направа), разбіццё слоў і падстаноўка імёнаў файлаў.

У сістэмах , якія могуць падтрымаць яго, ёсць дадатковае пашырэнне даступна: замена працэсу.

клямар пашырэння

Падстаноўка дужак ўяўляе сабой механізм , з дапамогай якога можна генераваць адвольныя радкі. Гэты механізм падобны на пашырэнне імёнаў файлаў, але імёны файлаў , згенераваныя можа не быць. Шаблоны , каб быць пашырана дужка прыняць форму факультатыўнай прэамбулы, а затым побач падзеленых косак радкоў паміж парай дужак, з наступнай дадатковай прыпіскай. Прэамбула прыстаўкі да кожнай радку, якая змяшчаецца ўнутры дужак, і прыпіска затым дадаюцца да кожнай выніковай радку, які пашыраецца злева направа.

Brace раскладання пустым радком. Вынікі кожнай пашыранай радкі ня сартуюцца; злева направа захоўваецца. Напрыклад, {д, з, Ь} е пашыраецца ў `ADE аса Abe».

Фігурныя дужкі выконваюцца перад любымі іншымі пашырэннямі, і ўсе спецыяльныя сімвалы іншых пашырэнняў захоўваюцца ў выніку. Гэта строга тэкстава. Bash не выкарыстоўвае ніякай сінтаксічнай інтэрпрэтацыі кантэксту пашырэння або тэксту паміж дужкамі.

Гэтая канструкцыя звычайна выкарыстоўваецца як скарачэнне, калі агульны прэфікс з радкоў, каб быць згенераваныя больш, чым у прыведзеным вышэй прыкладзе:

MkDir / USR / мясцовыя / SRC / Баш / {стары, новы, р-н, памылкі}

або

Чаун корань /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Фігурныя дужкі ўносіць невялікую несумяшчальнасць з гістарычнымі версіямі ш. ш не лечыць адкрыцця або закрыцця дужкі асабліва калі яны выступаюць як частка слова, і захоўвае іх на выхадзе. Bash выдаляе фігурныя дужкі з слоў , як следства пашырэння распоркі. Напрыклад, уведзенае слова ў Sh як файл {1,2} з'яўляецца аднолькава на выхадзе. Тое ж самае слова выводзіцца як file1 file2 пасля пашырэння з дапамогай Баша. Калі строгая сумяшчальнасць з ш пажадана, пачаць Баш з опцыяй + B або адключыць пашырэнне распорного з опцыяй + B на каманду ўстаноўкі (гл АБАЛОНКА убудаваных каманд ніжэй).

тыльды

Калі слова пачынаецца з некотируемого сімвалам тыльда ( `~«), усе сімвалы , папярэднія першай касой рысы (без двукоссяў або ўсе знакі, калі няма двукоссяў касая) лічацца тыльда-прэфікс. Калі ні адзін з сімвалаў тыльда-прэфікса не пазначаныя, сімвалы ў тыльда-прэфікс пасля тыльды разглядаюцца як магчымае рэгістрацыйнае імя. Калі гэтае імя Лагін з'яўляецца пусты радок, тыльда замяняецца на значэнне параметру абалонкі HOME. Калі HOME не ўсталяваная, хатні каталог карыстальніка , які запусціў абалонку падстаўляецца замест гэтага. У адваротным выпадку, тыльда-прэфікс замяняецца на хатні каталог, звязаны з паказаным імем.

Калі тыльда-прэфікс з'яўляецца `~ +», значэнне зменнай абалонкі PWD замяняе тыльда-прэфікс. Калі тыльда-прэфікс з'яўляецца `~ -», значэнне зменнай абалонкі OLDPWD, калі ён усталяваны, з'яўляецца замяшчэнне. Калі знакі пасля тыльды ў тыльда-прэфікс складаецца з ліку N, неабавязкова прыстаўкай знак `+« ці '- », тыльда-прэфікс замяняецца на адпаведны элемент з стэка каталогаў, як гэта будзе адлюстроўвацца па BUILTIN дырэкторый выклікаецца з тыльда-прэфікса ў якасці аргументу. Калі знакі пасля тыльды ў тыльда-прэфікс складаецца з ліку без вядучых `+« ці '- »,` + »мяркуецца.

Калі імя Лагін з'яўляецца несапраўдным, ці тыльды не атрымоўваецца, слова не змяняецца.

Кожная пераменная прызначэнне правяраецца на некотируемым тыльда-прэфіксаў адразу ж пасля: ці =. У гэтых выпадках тыльды таксама выконваецца. Такім чынам, можна выкарыстоўваць імёны файлаў з тыльды ў прысваенняў PATH, MAILPATH і CDPATH, і абалонка прысвойвае пашыранае значэнне.

параметр пашырэння

`$ 'Сімвал ўводзіць пашырэнне параметраў, падстаноўкі каманд, або арыфметычнае пашырэнне. Імя параметру або сімвал, які павінен быць пашыраны, могуць быць заключаны ў дужкі, якія не з'яўляюцца абавязковымі, але служаць для абароны зменнай быць пашырана ад персанажаў адразу пасля яго, якія могуць быць інтэрпрэтаваныя як частка імя.

Калі дужкі выкарыстоўваюцца, які ўзгадняе канчатак дужкі з'яўляецца першым `} 'ня замаскіраваная зваротнай касой рысай або ў двукоссях, а не ў якасці ўбудаванага арыфметычнага пашырэння, падстаноўкі каманд або пашырэння параметру Я .

Значэнне параметру замяняецца. Дужкі неабходныя , калі параметр з'яўляецца пазіцыйным параметрам з больш чым адной лічбай, або калі параметр варта сімвал , які не варта разглядаць як частка яго імя.

У кожным з прыведзеных ніжэй выпадкаў, слова , падлягае тыльды, падстаноўка значэнняў параметраў, падстаноўкі каманд і арыфметычнага пашырэння. Калі не выконвае пашырэнне падрадка, баш тэсты для параметру , які ўсталяваны або нулявы; апускаючы вынікі тоўстай кішкі ў цесцю толькі для параметру, які не ўсталяваны.

Выкарыстанне значэнняў па змаўчанні. Калі параметр не ўстаноўлены або нулявы, раскрыццё словы замененыя. У адваротным выпадку, значэнне параметру замяняецца.

Прысваенне значэнняў па змаўчанні. Калі параметр не ўстаноўлены або нулявы, раскрыццё словы прысвоенага параметру. Значэнне параметру затым прымаюць ролю. Пазіцыйныя параметры і спецыяльныя параметры не могуць быць прызначаныя такім чынам.

Паказаць памылкі , калі Null або адключаныя. Калі параметр роўны нулю або адключанае, разлажэнне слова (або паведамленне з гэтай нагоды , калі слова няма) запісваецца ў стандартнай памылкі і абалонкі, калі ён не з'яўляецца інтэрактыўным, выхад. У адваротным выпадку, значэнне параметру замяняецца.

Выкарыстоўваць альтэрнатыўнае значэнне. Калі параметр роўны нулю або ня ўстаноўлена, нічога не падстаўляецца, у адваротным выпадку разлажэнне словы падстаўляецца.

Замяняецца імёны зменных, імёны якіх пачынаюцца з прэфікса, падзеленых першым сімвалам спецыяльнай зменнай IFS.

Даўжыня ў знаках значэння параметру замяняецца. Калі параметр * ці @, значэнне падстаўляецца колькасць пазіцыйных параметраў. Калі параметр з'яўляецца імем масіва індэкснага * ці @, значэнне падстаўляецца колькасць элементаў у масіве.

Слова раскрываецца , каб атрымаць шаблон гэтак жа , як у пашырэнні імя шляху. Калі шаблон супадае з пачаткам значэння параметру, то вынік пашырэння будзе значэнне параметру з найкароткім шаблонам ўзгаднення (The `` # «» выпадку) ці сам доўгім шаблонам ўзгаднення (The `` ## ' 'выпадак) выдалены. Калі параметр @ або *, аперацыя выдалення шаблону прымяняецца да кожнага пазіцыйныя параметры , у сваю чаргу, і пашырэнне ў выніку спіс. Калі параметр з'яўляецца зменнай масіва індэксуюцца @ або *, аперацыя выдалення шаблону прымяняецца да кожнага элементу масіва , у сваю чаргу, і пашырэнне ў выніку спіс.

Слова раскрываецца , каб атрымаць шаблон гэтак жа , як у пашырэнні імя шляху. Калі шаблон адпавядае завяршальнай часткі пашыранага значэння параметру, то вынік пашырэння будзе значэнне параметру з найкароткім шаблонам ўзгаднення (The ``% «» выпадку) ці сам доўгім шаблонам ўзгаднення (The ``% % '' выпадку) выдаляюцца. Калі параметр @ або *, аперацыя выдалення шаблону прымяняецца да кожнага пазіцыйныя параметры , у сваю чаргу, і пашырэнне ў выніку спіс. Калі параметр з'яўляецца зменнай масіва індэксуюцца @ або *, аперацыя выдалення шаблону прымяняецца да кожнага элементу масіва , у сваю чаргу, і пашырэнне ў выніку спіс.

Шаблон пашыраецца , каб атрымаць шаблон гэтак жа , як у пашырэнні імёнаў файлаў. Параметр раскрываецца і самае доўгае супадзенне шаблону з яго значэннем замяняецца радком. У першай форме, толькі першы матч будзе заменены. Другая форма выклікае ўсё матчы шаблону павінны быць замененыя на радку. Калі шаблон пачынаецца з #, ён павінен адпавядаць ў пачатку пашыранага значэння параметру. Калі шаблон пачынаецца з%, ён павінен адпавядаць у канцы пашыранага значэння параметру. Калі радок з'яўляецца нулявы, матчы шаблону будуць выдалены і / наступны шаблон можа быць апушчаны. Калі параметр @ або *, аперацыя падстаноўкі прымяняецца да кожнага пазіцыйныя параметры , у сваю чаргу, і пашырэнне ў выніку спіс. Калі параметр з'яўляецца зменнай масіва індэксуюцца @ або *, аперацыя падстаноўкі прымяняецца да кожнаму члену масіва , у сваю чаргу, і пашырэнне ў выніку спіс.

падстаноўка каманд

Падстаноўка каманд дазваляе выхаду каманды , каб замяніць імя каманды. Ёсць дзве формы:

$ (Каманда)

або

Каманда ``

Bash выконвае пашырэнне шляхам выканання каманды і замены падстаноўкі каманд са стандартным вывадам каманды, з якімі - альбо сімвал перакладу радкі выдаленыя. Укаранёныя пераклады радка не выдаляецца, але яны могуць быць выдаленыя пры слове расшчаплення. Падстаноўкі каманд $ (кот файл) могуць быць замененыя эквівалентнымі , але хутчэй $ (<файл).

Калі стары стыль форма двукоссі замяшчэння выкарыстоўваюцца, зваротны слеш захоўвае сваё літаральнае значэнне , за выключэннем , калі варта $, `, або \. Першая двукоссе ня папярэднічае зваротны касой рысы завяршае падстаноўкі каманд. Пры выкарыстанні формы $ (каманда) ўсе знакі паміж дужкамі складаюць каманду; ні адзін з іх спецыяльна апрацоўваюцца.

Каманда замены пустым радком. Для гнязда, калі з дапамогай закавыченных формы, пазбегнуць ўнутранай зваротныя двукоссі з зваротнай касой рысы.

Калі замена з'яўляецца ў падвойных двукоссях, разбіццё слоў і падстаноўка імёнаў файлаў не выконваюцца па выніках.

арыфметыка Expansion

Арыфметычнае пашырэнне дазваляе вылічаць арыфметычныя выразы і падстаноўкі выніку. Фармат для пашырэння арыфметыка:

$ ((Выраз))

Выраз разглядаецца , як калі б яно было заключана ў падвойныя двукоссі, але падвойныя двукоссі ўнутры дужак спецыяльна не разглядаюцца. Усе жэтоны ў выразе перажываюць разлажэнне параметру, пашырэнне радкоў, падстаноўкі каманд і выдаленне двукоссяў. Арыфметычныя падстаноўкі могуць быць укладзенымі.

Адзнака выконваецца ў адпаведнасці з правіламі , пералічаных ніжэй у раздзеле Арыфметычныя вылічэнні. Калі выраз з'яўляецца несапраўдным, баш выводзіць паведамленне , якое паказвае на збой , і замяшчэнне не адбываецца.

падстаноўка працэсаў

Падстаноўка працэсаў падтрымліваецца на сістэмах , якія падтрымліваюць найменныя каналы (FIFO) або метад / DEV / Fd наймення адкрытых файлаў. Ён прымае форму <(спісу) або> (спіс). Спіс працэсаў запускаецца з уваходам або выхадам , падлучанага да FIFO або якой - небудзь файл у / Dev / Fd. Імя гэтага файла перадаецца ў якасці аргументу бягучай каманды ў выніку пашырэння. Калі> (спіс) выкарыстоўваецца форма, запіс у файл будзе забяспечваць увод для спісу. Калі <(спіс) выкарыстоўваецца форма, файл перадаецца ў якасці аргументу варта чытаць , каб атрымаць выснову спісу.

Пры наяўнасці, замена працэс выконваецца адначасова з параметрам і зменнай пашырэння, падстаноўкі каманд і арыфметычнага пашырэння.

расшчапленне Слова

Абалонка скануе вынікі пашырэння параметраў, падстаноўкі каманд і арыфметычнага пашырэнне , што не адбылося ў падвойных двукоссях для слова расшчаплення.

Абалонка разглядае кожны знак IFS як падзельнік і разбівае вынікі іншых пашырэнняў в слова гэтых знакаў. Калі IFS не ўсталяваная, або яго значэнне дакладна <прабел> <табуляцыя> <пераклад радка>, па змаўчанні, то любая паслядоўнасць знакаў IFS служыць для падзелу слоў. Калі IFS мае значэнне , адрознае ад значэння па змаўчанні, то паслядоўнасць прабельных знакаў прасторы і табуляцыі ігнаруюцца ў пачатку і ў канцы слова, да тых часоў , як сімвал прабелу ў значэнні IFS (IFS сімвал прабелу). Любы знак у МФС , што ня IFS пробельные, нароўні з любымі сумежнымі МФС прабельных знакаў, размяжоўвае полі. Паслядоўнасць МФС прабельных знакаў таксама разглядаецца ў якасці падзельніка. Калі значэнне IFS мае нулявое значэнне, не адбываецца ні слова расшчаплення.

Відавочныя нулявыя аргументы ( «» або «») захоўваюцца. Некотируемые няяўныя аргументы нулявыя, у выніку пашырэння параметраў, якія не маюць значэння, выдаляюцца. Калі параметр без значэння пашыраецца ў падвойных двукоссях, Нуль прыводзіць аргумент і захоўваецца.

Звярніце ўвагу, што калі не адбываецца ніякага пашырэння, няма падзелу не выконваецца.

Pathname Expansion

Пасля слова расшчапленню, калі опцыя -f не ўсталяваная, баш скануе кожнае слова для сімвалаў * ,? І [. Калі з'яўляецца адзін з гэтых знакаў, то слова разглядаецца як шаблон, і заменены ў алфавітным парадку спіс імёнаў файлаў , адпаведных шаблоне. Калі імёны файлаў адпаведнасці не знойдзены, і опцыя абалонкі nullglob адключаная, слова застаецца нязменным. Калі параметр nullglob усталяваны, і супадзенняў не знойдзена, то слова выдаляецца. Калі опцыя абалонкі nocaseglob ўключаная, матч праводзіцца без уліку рэгістра алфавітных знакаў. Калі шаблон выкарыстоўваецца для падстаноўкі імёнаў файлаў, сімвал ``. «» У пачатку імя або адразу пасля касой рысы павінны быць узгоднены ў відавочным выглядзе, калі опцыя абалонкі dotglob не ўсталяваны. Пры супастаўленні шляху да файла, слэш сімвал заўсёды павінен быць узгоднены ў відавочным выглядзе. У іншых выпадках, ``. «» Сімвал спецыяльна не разглядаюцца. Глядзіце апісанне shopt ніжэй пад SHELL BUILTIN КАМАНД для апісання варыянтаў nocaseglob, nullglob і dotglob абалонкі.

Пераменная GLOBIGNORE абалонка можа быць выкарыстана для абмежавання мноства імёнаў файлаў , адпаведных шаблоне. Калі GLOBIGNORE ўстаноўлена, кожнае імя файла адпаведнасці , што таксама супадае з адным з шаблонаў у GLOBIGNORE выдаляецца са спісу супадзенняў. Імёны файлаў ``. «» І `` .. «» заўсёды ігнаруюцца, нават калі GLOBIGNORE усталяваны. Аднак ўстаноўка GLOBIGNORE мае эфект ўключэнне опцыі dotglob абалонкі, так што ўсе астатнія імёны файлаў , якія пачынаюцца з ``. «» Будзе адпавядаць. Для таго, каб атрымаць старое паводзіны ігнаравання імёнаў файлаў , якія пачынаюцца з ``. «», Зрабіць ``. * «» Адзін з шаблонаў у GLOBIGNORE. Опцыя dotglob адключаецца , калі GLOBIGNORE знятая з аховы.

Pattern Matching

Любы сімвал, які з'яўляецца ў шаблоне, акрамя спецыяльных сімвалаў шаблону, апісаных ніжэй, адпавядае самому сабе. Сімвал NUL не можа адбывацца ў выглядзе малюнка. Спецыяльныя сімвалы шаблону павінны быць паказаны, калі яны павінны быць узгоднены ў літаральным сэнсе.

Спецыяльныя сімвалы шаблону маюць наступныя значэнні:

*

Адпавядае любую радок, у тым ліку пусты радка.

?

Адпавядае любы адзіночны сімвал.

[...]

Адпавядае любому з сімвалаў у дужках. Пара сімвалаў , падзеленых злучком пазначае выраз дыяпазону; любы знак, які сартуе паміж гэтымі двума знакамі, уключна, выкарыстоўваючы набор паслядоўнасцяў сартавання і сімвалаў бягучай лакалі, падабраны. Калі першы знак , наступны за [гэта! або ^ , то любы знак не прыкладаецца падабраны. Парадак сартавання знакаў у выразах дыяпазону вызначаецца бягучай лакалі і значэнне зменнай абалонкі LC_COLLATE, калі ён усталяваны. А - можа быць ўзгоднена шляхам ўключэння яго ў якасці першага або апошняга знака ў наборы. А] могуць быць узгоднены шляхам ўключэння яго ў якасці першага знака ў наборы.

У [і], класы сімвалаў могуць быць вызначаны з выкарыстаннем сінтаксісу [: клас:], дзе клас з'яўляецца адным з наступных класаў , вызначаных у стандарце POSIX.2:

альфа лічбы , літара ASCII пусты CNTRL лічба графікі ніжэй друк пунктуатор прастору старэйшага слова xdigit
Клас сімвалаў адпавядае любому знаку, які належыць да гэтага класа. Клас сімвалаў адпавядае слова з літар, лічбаў і знака _.

У [і], клас эквівалентнасці можа быць вызначаны з выкарыстаннем сінтаксісу [= з =], які адпавядае ўсім сымбалям з аднолькавым вагой сартавання (як гэта вызначана ў бягучай лакалі) у якасці сімвала с.

У [і], сінтаксіс [. сімвал.] адпавядае знаку сімвала сартавання.

Калі опцыя extglob абалонкі ўключаецца з дапамогай shopt убудаванай каманды, некалькі пашыранай мадэлі , адпаведныя аператары прызнаюцца. У наступным апісанні шаблону спіс ўяўляе сабой спіс з аднаго або некалькіх шаблонаў , падзеленых | , Кампазітныя структуры могуць быць сфармаваныя з выкарыстаннем аднаго або некалькіх з наступных подшаблона:

? (Шаблон)

Адпавядае нуль або адно ўваходжанне названых шаблонаў

* (Шаблон)

Адпавядае нуля або больш уваходжанняў названых шаблонаў

+ (Шаблон)

Адпавядае аднаму або больш уваходжанняў названых шаблонаў

@ (Шаблон)

Дакладна адпавядае аднаму з названых шаблонаў

! (Шаблон)

Матчы нічога, акрамя аднаго з названых шаблонаў

цытата Выдаленне

Пасля папярэдніх пашырэньні, усе каціруюцца ўваходжання сімвалаў \, " , што ня з'яўляецца вынікам адной з вышэйзгаданых пашырэньні выдаляюцца.

перакваліфікацыя

Перад выкананнем каманды, яе ўвод і выснова можа быць перанакіраваны з дапамогай спецыяльнага абазначэння інтэрпрэтатарам. Перанакіраванне таксама можа быць выкарыстаны для адкрыцця і закрыцця файлаў для бягучай асяроддзя выканання абалонкі. Наступныя аператары перанакіравання могуць папярэднічаць або з'явіцца ў любым месцы ў межах просты каманды або могуць прытрымлівацца за камандай. Перанакіравання апрацоўваюцца ў парадку іх з'яўлення, злева направа.

У наступным апісанні, калі нумар дэскрыптара файла апушчаны, і першы сімвал аператара перанакіравання <, перанакіраванне спасылаецца на стандартны ўвод (дэскрыптар файла 0). Калі першы сімвал аператара перанакіравання>, перанакіраванне спасылаецца на стандартны вывад (дэскрыптар файла 1).

Слова пасля аператара перанакіравання ў наступных апісаннях, калі не пазначана іншае, падвяргаюць пашырэнню, дужкі тыльды, падстаноўка значэнняў параметраў, падстаноўкі каманд, арыфметычнае пашырэнне, выдаленне цытаты, пашырэнне імя шляху, і слова расшчапленне. Калі ён пашыраецца да больш чым аднаго слова, баш выдае паведамленне пра памылку.

Звярніце ўвагу, што парадак перанакіраваньняў мае значэнне. Напрыклад, каманда

Ls> DirList 2> & 1

накіроўвае як стандартны вывад і стандартныя памылкі ў файл DirList, у той час як каманда

Ls 2> & 1> DirList

накіроўвае толькі стандартны вывад у файл DirList, таму што стандартная памылка дублюецца ў стандартны вывад , перш чым стандартны вывад быў перанакіраваны на DirList.

Bash апрацоўвае некалькі імёнаў файлаў , спецыяльна , калі яны выкарыстоўваюцца ў перанакіраванні, як апісаны ў наступнай табліцы:

/ DEV / FD / FD

Калі ФД з'яўляюцца цэлае, дэскрыптар файла ФД дублююцца.

/ DEV / STDIN

Файл дэскрыптара 0 дублюецца.

/ DEV / STDOUT

Дэскрыптар файла 1 дублюецца.

/ DEV / STDERR

дэскрыптар файла 2 дублюецца.

/ DEV / TCP / хост / порт

Калі хост з'яўляецца сапраўдным імем або адрас у Інтэрнэце, а порт з'яўляецца лік цэлага порта або імем службы, баш спрабуе адкрыць злучэнне TCP да адпаведнага гнязда.

/ DEV / UDP / хост / порт

Калі хост з'яўляецца сапраўдным імем або адрас у Інтэрнэце, а порт з'яўляецца лік цэлага порта або імем службы, баш спрабуе адкрыць UDP злучэнні з адпаведным гняздом.

Няздольнасць адкрыць або стварыць файл выклікае перанакіраванне на правал.

перанакіраванне ўводу

Перанакіраванне ўводу выклікае файл, імя якога атрымліваецца ў выніку раскладання словы , каб быць адкрыты для чытання дэскрыптар файла п, або стандартнага ўводу (дэскрыптар файла 0) , калі п не пазначана.

Агульны фармат для перанакіравання ўводу з'яўляецца:

[П] <слова

перанакіраванне высновы

Перанакіраванне высновы выклікае файл, імя якога атрымліваецца ў выніку раскладання словы будзе адкрыты для запісу на дэскрыптар файла п, або стандартны вывад (дэскрыптар файла 1) калі п не пазначана. Калі файл не існуе, ён ствараецца; калі ён існуе, то ён усекается да нулявога памеру.

Агульны фармат для перанакіравання вываду з'яўляецца:

[П]> слова

Калі аператар перанакіравання>, а параметр NoClobber мноству ўбудаваных каманд былі уключаны, то пераадрасацыя будзе памылка , калі файл, вынікі якога імя ад пашырэння словы існуе і з'яўляецца звычайным файлам. Калі аператар перанакіравання> | Або аператар перанакіравання> і параметр NoClobber у камандзе набору ўбудаваных не ўключаная, то пераадрасацыя будзе зроблена спроба , нават калі файл з імем словы існуе.

Прымацаванне перанакіраваны выхад

Перанакіраванне высновы ў гэтай модзе выклікае файл, імя якога атрымліваецца ў выніку раскладання словы будзе адкрыты для дадання ў файл з дэскрыптарам п, або стандартны вывад (дэскрыптар файла 1) калі п не пазначана. Калі файл не існуе, ён будзе створаны.

Агульны фармат для дадання выхаду:

[П] >> слова

Перанакіраванне стандартнага вываду і стандартныя памылкі

Bash дазваляе як стандартны вывад (дэскрыптар файла 1) і стандартны вывад памылак (дэскрыптар файла 2) будзе перанакіраваны ў файл, імя якога з'яўляецца пашырэнне словы з гэтай канструкцыяй.

Ёсць два фармату для перанакіравання стандартнага вываду і стандартнай памылкі:

&> Слова

і

> & Слова

З гэтых двух формаў, першы з'яўляецца пераважнай. Гэта семантычна эквівалентна

> Слова 2> & 1

тут Дакументы

Гэты тып перанакіравання выдае каманду абалонкі, каб прачытаць ўваходны сігнал ад крыніцы току да радка , якая змяшчае толькі слова (без хваставых прабелаў) разглядаюцца. Усе радкі дачыталі да гэтага моманту, затым выкарыстоўваюцца ў якасці стандартнага ўводу для каманды.

Фармат тут-дакументаў:

<< [-] слова дакумент-тут абмежавальнік

Няма пашырэнне параметраў, падстаноўкі каманд, арыфметычнае пашырэнне, або пашырэнне шляху не выконваецца на слове. Калі якія - небудзь сімвалы ў слове цытуецца, падзельнік з'яўляецца вынікам выдалення цытаты на словах, а радкі ў дакуменце-тут не пашыраны. Калі слова ў двукоссі, усе лініі тут-дакумента падвяргаюцца параметр пашырэння, падстаноўкі каманд і арыфметычных выразаў. У апошнім выпадку паслядоўнасць знакаў \ <пераклад радка> ігнаруецца, і \ павінны быць выкарыстаны для цытавання сімвалаў \, $ і `.

Калі аператар перанакіравання << -, то ўсе вядучыя знакі табуляцыі выдаляецца з ўваходных ліній і ліній , які змяшчае падзельніка. Гэта дазваляе тут-дакументы ў сцэнарах абалонкі з водступам натуральным чынам.

тут Струны

Варыянт тут дакументаў, фармат:

<<< слова

Слова пашыраецца і падаецца каманда на стандартны ўвод.

Дубляванне дэскрыптараў файлаў

аператар перанакіравання

[П] <& слова

выкарыстоўваецца для дублявання дэскрыптараў ўваходных файлаў. Калі слова пашыраецца да адной ці больш лічбаў, дэскрыптар файла пазначаецца п, робіцца копія гэтага дэскрыптара файла. Калі лічбы ў слове не паказаць дэскрыптар файла , адкрыты для ўводу, адбываецца памылка перанакіраваньні. Калі слова мае значэнне - дэскрыптар файла п зачынены. Калі п не пазначана, то выкарыстоўваецца стандартны ўвод (дэскрыптар файла 0).

аператар

[П]> & слова

выкарыстоўваецца аналагічна для дублявання дэскрыптараў выходных файлаў. Калі п не пазначана, то выкарыстоўваецца стандартны вывад (дэскрыптар файла 1). Калі лічбы ў слове не паказаць дэскрыптар файла , адкрыты для высновы, адбываецца памылка перанакіраваньні. У асаблівым выпадку, калі п апушчаны, і слова ня пашыраецца да адной ці больш лічбаў, стандартны вывад і стандартная памылка перанакіроўваюцца , як апісана раней.

Перасоўванне дэскрыптараў файлаў

аператар перанакіравання

[П] <& лічба -

перамяшчае дэскрыптар файла лічбы ў файл дэскрыптара п, або стандартны ўвод (дэскрыптар файла 0) , калі п не пазначана. лічба зачыняецца пасля дублюецца п.

Аналагічным чынам, аператар перанакіравання

[П]> & лічба -

перамяшчае дэскрыптар файла лічбы ў файл дэскрыптара п, або стандартны вывад (дэскрыптар файла 1) калі п не пазначана.

Адкрыццё дэскрыптараў файлаў для чытання і запісы

аператар перанакіравання

[П] <> слова

выклікае файл, імя якога з'яўляецца пашырэнне словы , каб быць адкрыты для чытання і запісы на дэскрыптар файла п, або дэскрыптара файла 0 , калі п не паказаная. Калі файл не існуе, ён будзе створаны.

аліасы

Псеўданімы дазваляюць радку быць заменена на слова , калі ён выкарыстоўваецца ў якасці першага слова просты каманды. Абалонка падтрымлівае спіс псеўданімаў , якія могуць быць устаноўлены і неўстаноўленымі з псеўданімам і unalias ўбудаваных каманд у (гл АБАЛОНКА убудаваных каманд ніжэй). Першае слова кожнай каманды, калі без двукоссяў, правяраецца, каб убачыць, калі ён мае псеўданім. Калі так, то гэта слова замяняецца тэкстам псеўданіма. Імя псеўданіма і тэкст замены могуць утрымліваць любы сапраўдны ўваход абалонкі, у тым ліку метасімвалаў , пералічаных вышэй, за выключэннем таго, што імя псеўданіма не можа ўтрымліваць =. Першае слова тэксту замены правяраецца на псеўданімы, але слова, якое супадае з псеўданімам нарошчвання ня пашыраецца ў другі раз. Гэта азначае , што адзін можа псеўданім Ls Л.С. -F, напрыклад, і Баш не спрабуе рэкурсіўна пашырыць тэкст замены. Калі апошні сімвал значэння псеўданіма з'яўляецца пустым, то наступная каманда слова пасля псеўданіма таксама правяраецца на пашырэнне псеўданіма.

Псеўданімы ствараюцца і пералічаныя з дапамогай каманды псеўданіма, і выдаліць з дапамогай unalias каманды.

Там няма ніякага механізму для выкарыстання аргументаў у тэксце замены. Калі патрэбныя аргументы, функцыя абалонкі варта выкарыстоўваць (гл ніжэй функцыі).

Псеўданімы ня пашыраецца , калі абалонка не з'яўляецца інтэрактыўнай, калі не expand_aliases абалонкі параметру усталёўваецца з дапамогай shopt (глядзіце апісанне shopt пад абалонкай убудаваных каманд ніжэй).

Правілы, якія датычацца вызначэння і выкарыстання псеўданімаў некалькі заблытаныя. Bash заўсёды чытае па меншай меры адну поўную радок уводу перад выкананнем любой з каманд на гэтым радку. Псеўданімы пашыраюцца, калі каманда чытання, а не пры яе выкананні. Такім чынам, вызначэнне псеўданіма з'яўляцца на той жа радку, што і другая каманда не ўступіць у сілу да тых часоў, наступная радок ўводу, не чытаецца. Каманды наступныя вызначэнні псеўданіма на тым жа радку, не закранаюцца новым псеўданімам. Такія паводзіны таксама з'яўляецца праблемай, калі функцыі выконваюцца. Псеўданімы пашыраюцца, калі вызначэнне функцыі чытання, не тады, калі функцыя выконваецца, паколькі вызначэнне функцыі само з'яўляецца складовай камандай. Як следства, псеўданімы, вызначаныя ў функцыі не даступныя да пасля гэтага функцыя выконваецца. Каб засцерагчы сябе , заўсёды ставіць вызначэнне псеўданімаў на асобную радок, а не выкарыстоўваць псеўданім у складаных камандах.

Амаль для кожнай мэты, псеўданімы замяняюцца функцыямі абалонкі.

ФУНКЦЫІ

Функцыя абалонкі, вызначаецца , як апісана вышэй у раздзеле SHELL граматыка, захоўвае серыю каманд для наступнага выканання. Калі імя функцыі абалонкі выкарыстоўваюцца ў якасці простага імя каманды, спіс каманд, звязаных з гэтым імем функцыі выконваюцца. Функцыі выконваюцца ў кантэксце бягучай абалонкі; ня новы працэс не ствараецца, каб інтэрпрэтаваць іх (параўнаць гэта з выкананнем сцэнара абалонкі). Калі функцыя выконваецца, аргументы функцыі становяцца пазіцыйнымі параметрамі падчас яго выканання. Спецыяльны параметр # абнаўляецца , каб адлюстраваць змены. Пазіцыйны параметр 0 не змяняецца. Пераменная имя_функции усталёўваецца на імя функцыі , а функцыя выконваецца. Ўсе іншыя аспекты асяроддзя выканання абалонкі ідэнтычныя паміж функцыяй і яе абанентам, за выключэннем , што DEBUG пастка (гл апісанне пасткі убудаванай каманды пад SHELL BUILTIN КАМАНДЫ ніжэй) не перадаецца па спадчыне , калі функцыя не была дадзена атрыбут трасіроўкі ( см апісанне ніжэй заяўляюць) убудаванай каманды .

Зменныя лакальныя функцыі могуць быць абвешчаныя з лакальнай убудаванай каманды. Як правіла, зменныя і іх значэння падзяляюцца паміж функцыяй і яе выклікалай.

Калі вяртанне убудаванай каманды выконваюцца ў функцыі, функцыя завяршаецца і выкананне аднаўляецца з наступнай камандай пасля выкліку функцыі. Калі функцыя завяршаецца, значэння пазіцыйных параметраў і спецыяльнага параметру # будуць адноўлены да значэнняў , якія былі да выканання функцыі.

Імёны функцый і вызначэння могуць быць пералічаныя з дапамогай опцыі -f да дэкларавання або Typeset ўбудаваных каманд. Опцыя -F абвясціць або друкарскія пералічаць толькі імёны функцый. Функцыі могуць быць экспартаваныя , так што Подоболочки аўтаматычна мець іх вызначаюцца з дапамогай опцыі -f экспарту убудаванай каманды.

Функцыі могуць быць рэкурсіўны. Няма абмежаванняў не накладваецца на колькасць рэкурсіўных выклікаў.

ARITHMETIC АЦЭНКА

Абалонка дазваляе арыфметычныя выразы для ацэнкі, пры пэўных абставінах (гл Выпускаецца наканаванымі каманды і арыфметыцы пашырэння). Ацэнка робіцца ў фіксаванай шырыні цэлых лікаў без праверкі на перапаўненне, хоць дзяленне на 0 ў пастцы і пазначаныя як памылкі. Аператары і іх прыярытэт і асацыятыўнасць такі ж, як і ў мове Сі. Ніжэй прыведзены спіс аператараў згрупаваны узроўняў аператараў з аднолькавым прыярытэтам. Ўзроўні пералічаныя ў парадку змяншэння прыярытэту.

ID ++ ідэнтыфікатар -

пераменная пост-инкремент і постдекремент

++ ідэнтыфікатар - ідэнтыфікатар

пераменная Преинкремент і предекремент

- +

унарный мінус і плюс

! ~

лагічнае і пабітавае адмаўленне

**

экспоненцирование

* /%

множанне, дзяленне, рэшту

+ -

складанне, адніманне

<< >>

левыя і правыя бітаў зрухі

<=> = <>

параўнанне

==! =

роўнасць і няроўнасць

&

пабітавае І

^

пабітавае якое выключае АБО

|

пабітавае АБО

&&

лагічнае І

||

лагічнае АБО

выказваючы? выраз: выраз

умоўная адзнака

= * = / =% = + = - = << = >> = & = ^ = | =

прызначэнне

expr1, expr2

коска

Зменныя абалонкі дапушчальныя як аперанды; параметр раскладання выконваецца да таго, як вылічаецца выраз. У выразе, зменныя абалонкі таксама можна спасылацца па імі без выкарыстання сінтаксісу пашырэння параметраў. Значэнне зменнай ацэньваецца як арыфметычнае выраз, калі на яго спасылаецца. Пераменная абалонкі не павінен мець цэлалікавых атрыбут уключаны для выкарыстання ў выразе.

Канстанты, якія пачынаюцца з 0 інтэрпрэтуюцца як васьмярковых колькасці. Вядучы 0x або 0X пазначае шаснаццатковае. У адваротным выпадку, нумары маюць від [падстава #] п, дзе падстава ўяўляе сабой дзесятковы лік у дыяпазоне ад 2 да 64 , які прадстаўляе арыфметычнага падставы, і п ўяўляе сабой лік у гэтай базе. Калі падстава # апушчаны, то база 10 выкарыстоўваецца. Лічбы больш чым 9 прадстаўлены малымі літарамі, загалоўнымі літарамі, @ і _, у такім парадку. Калі падстава менш або роўна 36, малыя і вялікія літары могуць быць выкарыстаны ўзаемазамяняема для прадстаўлення лікаў у дыяпазоне ад 10 да 35 гадоў .

Аператары вылічаюцца ў парадку старшынства. Субвыражения у дужках вылічаюцца першымі і могуць перавызначыць правілы прыярытэту вышэй.

ЎМОЎНЫЯ ВЫРАЗЫ

Ўмоўныя выразы выкарыстоўваюцца [[каманда злучэнні і выпрабаванне і [убудаваныя каманды для праверкі атрыбутаў файла і выканаць радок і арыфметычныя параўнання. Выразы фармуюцца з наступных адзінарных або падвойных праймерыз. Калі які - небудзь файл аргумент да аднаго з праймерыз мае выгляд / Dev / FD / п, то файл дэскрыптара п правяраецца. Калі файл аргумент да аднаго з праймерыз адзін з / DEV / STDIN, / DEV / STDOUT, ці / DEV / STDERR, файлавы дэскрыптар 0, 1 або 2, адпаведна, правяраецца.

-a файл

Праўда , калі файл існуе.

-b файл

Ісціна , калі файл існуе і з'яўляецца блокавым спецыяльным файлам.

-c файл

Ісціна , калі файл існуе і з'яўляецца спецыяльным Знакавыя файлам.

-d файл

Ісціна , калі файл існуе і з'яўляецца каталогам.

-e файл

Праўда , калі файл існуе.

-f файл

Ісціна , калі файл існуе і з'яўляецца звычайным файлам.

-g файл

Ісціна , калі файл існуе і ўсталяваць-групавыя ідэнтыфікатары.

-h файл

Ісціна , калі файл існуе і з'яўляецца сімвалічнай спасылкай.

-k файл

Ісціна , калі файл існуе і яго `` ліпкае «» біт.

-p файл

Ісціна , калі файл існуе і з'яўляецца Найменныя каналам (FIFO).

-r файл

Ісціна , калі файл існуе і даступны для чытання.

-s файл

Ісціна , калі файл існуе і мае памер больш за нуль.

-t FD

Праўда , калі дэскрыптар файла FD адкрыты і спасылаецца на тэрмінал.

-u файл

Ісціна , калі файл існуе і яго ўстаноўка ідэнтыфікатар карыстача ўсталёўваецца біт.

-w файл

Ісціна , калі файл існуе і даступны для запісу.

-x файл

Ісціна , калі файл існуе і з'яўляецца выкананым.

файл

Ісціна , калі файл існуе і належыць эфектыўны ідэнтыфікатар карыстальніка.

-G файл

Ісціна , калі файл існуе і належыць эфектыўны ідэнтыфікатар групы.

-L файл

Ісціна , калі файл існуе і з'яўляецца сімвалічнай спасылкай.

-S файл

Ісціна , калі файл існуе і з'яўляецца сокетам.

-N файл

Ісціна , калі файл існуе і быў зменены з моманту апошняга чытання.

file1 - нт file2

Праўда , калі файл1 навей (згодна з датай змены) , чым file2, або калі file1 file2 існуе і няма.

file1 - ВЗ file2

Праўда , калі file1 старэй file2, або калі file2 існуе і file1 ня робіць.

file1 -ef file2

Праўда , калі file1 і file2 ставяцца да аднаго прыладзе і инодов нумароў.

optname

Праўда , калі опцыя абалонкі optname ўключана. Глядзіце спіс опцый пры апісанні опцыі -o набору убудаванай каманды ніжэй.

-z радок

Праўда , калі даўжыня радка роўная нулю.

-n радок

радок

Праўда , калі даўжыня радка не роўная нулю.

string1 == string2

Праўда, калі радкі роўныя. = Можа быць выкарыстаны замест == строгага захавання POSIX.

string1! = string2

Праўда, калі радкі не роўныя.

string1

Праўда , калі STRING1 гатунку перад тым строке2 лексікаграфічныя ў бягучай лакалі.

string1> string2

Праўда , калі STRING1 гатунку пасля строке2 лексікаграфічныя ў бягучай лакалі.

arg1 OP arg2

OP з'яўляецца адным з -eq, -ne, -lt, -le, -gt або -ge. Гэтыя бінарныя арыфметычныя аператары вяртаюць ісціну , калі arg1 адно, не роўна, менш, менш або роўна, больш або больш або роўны arg2, адпаведна. Arg1 і arg2 могуць быць станоўчымі ці адмоўнымі лікамі.

SIMPLE COMMAND пашыраную

Калі простая каманда выканана, абалонка выконвае наступныя раскладання, прызначэнне і перапрызначэння, злева направа.

1.The словы, сінтаксічны аналізатар, пазначаныя як прысвойвання пераменным (тыя, перад імем каманды) і перанакіраваньні, захоўваюцца для наступнай апрацоўкі.

2.The словы, якія не з'яўляюцца зменнымі прызначэння або перапрызначэння пашыраны. Калі якія-небудзь словы застаюцца пасля пашырэння, першае слова бярэцца імя каманды, а астатнія словы з'яўляюцца аргументамі.

3.Redirections выкананы , як апісана вышэй у раздзеле Перанакіраванне.

4.The тэкст пасля = у кожнай зменнай прысваення падвяргаецца тыльды, падстаноўка значэнняў параметраў, падстаноўкі каманд, арыфметычнае пашырэнне і выдаленне двукоссяў перад прызначэннем зменнай.

Калі ў выніку імя каманды, зменныя заданні ўплываюць на бягучую сераду абалонкі. У адваротным выпадку, зменныя дадаюцца ў сераду выконваемай каманды і не ўплывае на бягучую сераду абалонкі. Калі які-небудзь з заданняў спрабуе прысвоіць значэнне зменнай толькі для чытання, могуць узнікнуць праблемы, і каманда выходзіць з ненулявое статусам.

Калі вынікі не імя каманды, перапрызначэння выконваюцца, але не ўплываюць на бягучую сераду абалонкі. Памылка Перанакіраванне прымушае каманду выйсці з ненулявое статусам.

Калі імя каманды засталося пасля пашырэння, выкананне працягваецца, як апісана ніжэй. У адваротным выпадку каманда завяршаецца. Калі адзін з пашырэньні ўтрымлівае падстаноўку каманд, статус завяршэння каманды з'яўляецца статус выхаду апошняй падстаноўкі каманд выконваецца. Калі б не было ніякіх каманд замен, каманда выходзіць са статусам нуля.

КАМАНДА ВЫКАНАННЕ

Пасля таго, як каманда была разбіта на словы, калі гэта прыводзіць да простай каманды і неабавязковы спіс аргументаў, робяцца наступныя дзеянні.

Калі імя каманды не ўтрымлівае касую рысу, спробы абалонкі, каб знайсці яго. Калі існуе функцыя абалонкі з такім імем, што функцыя выклікаецца , як апісана вышэй у функцыі. Калі імя не супадае з функцыяй, пошукі абалонкі для яго ў спісе ўбудаваных каманд абалонкі. Калі супадзенне знойдзена, што ўбудаваная каманда выклікаецца.

Калі імя ня з'яўляецца ні функцыяй абалонкі , ні убудаванай, і не ўтрымлівае касую рысы, баш шукае кожны элемент шляху для каталога , які змяшчае выкананы файл з такім імем. Bash выкарыстоўвае хэш - табліцу , каб памятаць , поўныя імёны выкананых файлаў (гл хэш пад SHELL BUILTIN КАМАНДЫ ніжэй). Поўны пошук каталогаў у PATH выконваецца толькі калі каманда не знойдзена ў хэш - табліцы. Калі пошук няўдалы, абалонка выводзіць паведамленне пра памылку і вяртае статус выхаду 127.

Калі пошук паспяховы, або калі імя каманды ўтрымлівае адзін ці некалькі слэш, абалонка выконвае названую праграму ў асобнай асяроддзі выканання. Аргумент 0 ўсталёўваюцца на імя дадзенага, а астатнія аргументы каманды настроены на аргументы дадзеных, калі такія маюцца.

Калі выкананне трывае няўдачу , таму што файл не ў выкананым фармаце, а файл не з'яўляецца каталогам, то мяркуецца, што сцэнар абалонкі, файл , які змяшчае каманды абалонкі. Подоболочка спароджаная, каб выканаць яго. Гэта подоболочка ініцыялізуе сябе, так што эфект , як калі б новая абалонка была выкліканая для апрацоўкі сцэнара, за выключэннем таго, што размяшчэнне каманд запамінаюцца бацькам (гл хэш ніжэй пад SHELL BUILTIN КАМАНД) захоўваюцца дзіцем.

Калі праграма ўяўляе сабой файл , пачынаючы з #! , Астатняя частка першага радка задае інтэрпрэтатар для праграмы. Абалонка выконвае зададзены інтэрпрэтатар на аперацыйных сістэмах, якія не апрацоўваюць гэты фармат выкананага самі. Аргументы перакладчыка складаецца з аднаго неабавязковага аргументу пасля імя інтэрпрэтатара на першым радку праграмы, за якім варта імя праграмы, а затым аргументы каманды, калі такія маюцца.

КАМАНДА Execution Environment

Абалонка мае сераду выканання, якая складаецца з наступных умоў :

* Адкрытыя файлы , успадкаваныя абалонкі пры выкліку, змененых перанакіраванне , якія пастаўляюцца з выконваемай убудаванай камандай

* Бягучы працоўны каталог, усталяваны CD, Pushd або Popd, ці атрымліваецца ў спадчыну абалонкі пры выкліку

* Файл маска рэжыму стварэння , як устаноўлена UMASK або атрымала ў спадчыну ад бацькі абалонкі

* Бягучыя пасткі , устаноўленыя пасткі

* Параметры абалонкі, якія ўсталёўваюцца з дапамогай прысвойвання значэння пераменнага або з наборам або спадчынныя ад бацькоўскай абалонкі ў навакольным асяроддзі

* Функцыя абалонкі, пэўная падчас выканання або атрыманая ў спадчыну ад бацькоўскай абалонкі ў навакольным асяроддзі

* Опцыя ўключаная пры выкліку (альбо па змаўчанні або з дапамогай аргументаў каманднага радка) або набору

* Опцыі ўключаны па shopt

* Абалонкі псеўданімы , пэўныя з дапамогай псеўданіма

* Розныя ідэнтыфікатары працэсаў, у тым ліку фонавых заданняў, каштоўнасць $$ і значэнне $ PPID

Калі простая каманда, выдатнай ад убудаванай або абалонкі функцыі павінна быць выканана, яна выклікаецца ў асобнай асяроддзі выканання, якая складаецца ў наступным. Калі не пазначана іншае, значэння ўспадкоўваюцца ад абалонкі.

* Адкрытыя файлы каманднага інтэрпрэтатара, а таксама любыя змяненнi i дапаўненне, названыя перанакіравання да каманды

* Бягучы працоўны каталог

* Выява маска рэжыму стварэння

* Зменныя абалонкі пазначаныя для экспарту, нароўні з зменнымі, экспартуемы для каманды, перадаюцца ў навакольным асяроддзі

* Пастка злоўленай абалонкі скідаецца ў значэння атрыманых у спадчыну ад бацькі абалонкі, і пасткі, ігнаруемых абалонкі ігнаруюцца

Каманда выклікаецца ў гэтай асобнай асяроддзі, не можа паўплываць на сераду выканання каманднага інтэрпрэтатара.

Падстаноўка каманды і асінхронныя каманды выклікаюцца ў асяроддзі подоболочки, якая з'яўляецца дублікатам асяроддзя абалонкі, за выключэннем таго, што пасткі, злоўленая абалонка скідаюцца да значэнняў, што абалонка, атрыманых у спадчыну ад свайго бацькі пры выкліку. Убудаваныя каманды, якія выклікаюцца як частка трубаправода, таксама выконваецца ў асяроддзі подоболочки. Змены, унесеныя ў асяроддзі подоболочки не можа паўплываць на сераду выканання каманднага інтэрпрэтатара.

Калі каманда суправаджаецца & і кіраванне заданнямі ня актыўна, стандартны ўвод па змаўчанні для каманды гэта пусты файл / DEV / нуль. У адваротным выпадку, выклікаюцца каманда спадчыну дэскрыптары файлаў выклікалай абалонкі, змененыя перанакіраваньні.