Sh - Linux Command - Unix Command

NAME

Баш - GNU Борн-Again Shell

Кыскача баяндама

Баш [параметрлери] [File]

DESCRIPTION

Баш-стандартты киргизүү же бир иштин окуп буйруктарын аткарат бир Sh томдук китепке буйрук тилде тилмеч болуп саналат. Баш да Korn жана C орбиталарындагы (КШ жана csh) чейин пайдалуу өзгөчөлүктөрүн камтыйт.

Баш IEEE POSIX Shell жана Tools тактоо (IEEE Жумушчу топ 1003.2) бир төп ишке ашыруу үчүн арналган.

OPTIONS

Коюлган builtin буйругу баянында документ бир тамга номиналдык жолдору тышкары, Баш төмөнкү ыкмаларды чечмелейт ал дуба, эгерде:

-C сап

-C тандоо бар болсо, анда буйрук сап окуп жатышат. Сап кийин далилдер бар болсо, анда алар $ 0 менен баштап, турумдук параметрлери жүктөлгөн.

-i

-i мүмкүнчүлүк бар болсо, номиналдык өз ара аракеттенүү болуп саналат.

-l

Баш болсо, ал кирүү катмарда (төмөндө дубасын карагыла) деп дуба кылгандай иш жаса.

-r

-r мүмкүнчүлүк бар болсо, оболочка (төмөндө ЧЕКТЕЛГЕН Shell карагыла) чектелген болот.

-s

-s мүмкүнчүлүк бар болсо, же эч кандай аргументтер параметр кайра иштетилгенден кийин калып калса, анда буйруктары стандартты киргизүү окуп жатышат. Бул жол, өз ара кебетеси мелдеш болчу турумдук көрсөткүчтөр коюуга мүмкүндүк берет.

-D

Долларына чейин бардык кош айтылган саптардын тизмеси стандарттык оюп таштады басылып жатат. Бул азыркы тил C же POSIX эмес, кийин тил котормо тийиш саптар бар. Бул параметрин болжолдойт; эч кандай буйрук ишке ашырылат.

[- +] О [shopt_option]

shopt_option shopt builtin тарабынан кабыл номиналдык тандоолордун бири болуп саналат (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла). Shopt_option бар болсо, -O ошол тандоосу наркын аныктайт; + Оо, аны unsets. Shopt_option берилген жок болсо, shopt тарабынан кабыл алынган номиналдык тандоо аттары жана баалуулуктары стандарттык өндүрүшүнүн басылып жатат. Дубасы параметр O +, анда чыгаруу киргизүү колдонулушу мүмкүн түрдө пайда болот.

А - параметрлердин жок белгилери жана мындан ары чечим иштелип өчүрөт. Кийин, ар кандай талаш-тартыштар - аты жана аргумент катары каралат. Талаш боюнча - барабар болуп саналат. -

Баш да көп-мүнөзү тандоо бир катар жоромолдойт. Бул параметрлер бир тамга параметрлери таанылышы алдында буйрук сабында келсин.

--dump-по-саптар

Барабар -D, бирок чыгаруу GNU Gettext по (көчмө объект) билэ түрүндө болот.

--dump-саптар

-D барабар.

--help

стандарттык өндүрүшүнүн боюнча колдонуу билдирүү көрсөтүү жана ийгиликтүү чыгуу.

--init-Билэ Билэ

--rcfile билэ

Стандарт жеке демилгеленген Билэ Билэ буйруктарын аткаруудан ~ / .bashrc номиналдык ара болсо (төмөндө АШОТ карагыла).

--login

-l барабар.

--noediting

Кабыктарга өз ара качан GNU Readline китепкананы буйрук саптарды окуп үчүн колдонууга болбойт.

--noprofile

Тутумдук баштоо билэ / ж.б. / же жеке жөнөтсүн Files кандай ~ / .bash_profile, ~ / .bash_login, же ~ / болууда .San же окуган эмес. Алыдын ала, Баш бул документ бул кирүү катмарда (төмөндө дубасын карагыла) деп дуба кийин окуйт.

--norc

Кабыктарга өз ара болсо ~ / .bashrc жеке демилгеленген билэни окуп, аны ишке ашырыш жок. Номиналдык Ш. катары талап кылынса, анда бул тандоо демейки режимде иштеп турат.

--posix

Демейки иш-стандартты (POSIX режимин) дал POSIX 1003,2 стандарттын айырмаланат Баш жүрүм-турумун өзгөртүү.

--restricted

Оболочка (төмөндө ЧЕКТЕЛГЕН Shell карагыла) чектелген болот.

--rpm-талап

номиналдык скрипт иштетүү үчүн талап кылынган документтерди тизмесин келтиргиле. Бул "-н" дегенди билдирет жана компилештирүү убакыт ката текшерүүнү текшерүү, ошондой эле чектөөлөр менен макулдашат; Backticks, [] тесттер жана evals айрым көз карандылыктар, берилбей калган болушу мүмкүн, ошондуктан талданбай эмес. -V имамга --verbose.

--version

Ийгиликтүү стандарттык өндүрүү жана чыгуу боюнча Баш бул мисалы версия маалыматтарды көрсөтүү.

ARGUMENTS

Аргументтер параметр кайра иштетилгенден кийин калып, жана е да, сатылышы мүмкүн эмес берилген болсо, биринчи аргумент номиналдык буйруктарын камтыган берилген аты деп болжолдонуп жатат. Баш бул тагдыр дуба болсо, анда 0 $ делосуна атынан коюлганын жана турумдук параметрлери калган далилдер менен белгиленет. Баш окуп Бул буйруктарын аткарган, анан чыгып. Баш .Ал бүтүрүү статусу ариби менен өлүм жазасына акыркы буйрук бүтүрүү статусу болуп саналат. Эч кандай буйрук аткарылган болсо бүтүрүү статусу аракети биринчи жолу азыркы каталогдо билэни ачуу жүргүзүлөт 0, жана, жок билэ, анда номиналдык ариби жолу менен маалымат китепчелерин изилдеген табылган болсо.

АШОТ

Бир логин катмар бир нөл талаш анын биринчи белгиси болуп саналат - бул, же бир --login тандоосу менен башталды.

An ара номиналдык ким -C тандоосу далилдер менен эле эмес чечим жок стандартты киргизүү жана чыгаруу (белгиленген эле терминалдар байланыштуу эки башташты болуп isatty (3)), же бир -i тандоосу менен башталды. PS1 коюлган жана $ жатат - Баш номиналдык арибин же бул абалын текшерүү үчүн баштоо билэни берип, өз ара аракеттенүү болуп саналат, анда мен да кирет.

Төмөнкү пункттарына Баш анын баштоо билэлэри ишке кантип сүрөттөйт. Дептердин бирөө бар, бирок окууга мүмкүн болбосо, Баш ката билдирди. Tildes ш бөлүмүндө барактардын өсүш боюнча төмөндө сүрөттөлгөндөй билэ аттары менен жайылып жатат.

Баш менен өз ара аракеттенүү кирүү кабыгы дуба кылып жатканда, же --login тандоосу менен эмес өз ара кабыгы, ошол билэ бар болсо, биринчиден, окуп жана делосуна буйруктарын аткарат / ж.б. / кароо. Ошол билэни окуп чыккандан кийин, бул ~ / .bash_profile издейт, ~ / .bash_login жана ~ / болууда .San, үчүн, жана окуп бар жана окула турган болсо биринчи буйруктарын аткарат. Кабыгы бул жүрүм-жайлатуучу баштаган учурда --noprofile параметр пайдаланылышы мүмкүн.

Логин номиналдык чыга келгенде, Баш ал бар болсо, окуган жана билэ ~ / .bash_logout буйруктарын аткарат.

Логин кабыгы эмес, бир ара номиналдык баштаган болсо, Баш окуп жана билэ бар болсо, ~ / .bashrc буйруктарын аткарат. Бул --norc параметрин колдонгондой тыюу салынышы мүмкүн. --rcfile билэ параметр окуп, ордуна ~ / .bashrc колдонулбайт буйруктарын аткаруудан баш мажбур кылат.

Баш эмес өз ара баштаган учурда, бир орбитанын скриптер, мисалы, ал айлана-чөйрөгө өзгөрүлмө BASH_ENV издейт, эгерде ал жерде пайда болот, анын маанисин күчөтүп, окуп, аны ишке ашырыш үчүн берилген аты катары жайылып баасын колдонот . Баш төмөнкү буйрук аткарылган кыймыл-аракет жасайт:

Эгерде [ "$ BASH_ENV" -n]; анда. "$ BASH_ENV"; Fi

бирок PATH өзгөрмөнүн балл билэ атын издөө үчүн колдонулган эмес.

Баш аты Ш. менен дуба болсо, ал, ошондой эле POSIX стандартка ылайык, ал эми мүмкүн болушунча бекем Ш. тарыхый нускаларды баштоо жүрүм тууроого аракет кылат. Бир ара кирүү кабыгынан же --login тандоосу менен эмес өз ара кабыгы дуба, биринчи буйруктарды окуп, аны ишке ашырыш үчүн келген аракеттери / ж.б. / маалыматтар жана ~ / болууда .San, ошол үчүн. --noprofile параметр бул жүрүм-тоскоол болуу үчүн пайдаланылышы мүмкүн. Аты-жөнү, Ш. менен өз ара аракеттенүү кабыгы дуба кылганда, баш ал аныкталса, анда өзгөрмөлүү окр, анын наркын ачат издейт, окуп, аны ишке ашырыш үчүн берилген аты катары өсүп баасын колдонот. Ш. деп дуба номиналдык башка баштоо көчүрүп алып, буйруктарды окуп, аны ишке ашырыш үчүн аракет жок, анткени, --rcfile параметр эч кандай таасир тийгизбейт. Аты-жөнү, Ш. менен дуба эмес-ара номиналдык башка баштоо окуу үчүн аракет жок. Ш. деп дуба кылганда, баш баштоо делосу окуп кийин POSIX режимге өтөт.

Баш POSIX режиминде баштаган учурда, --posix буйрук сап тандоосу менен эле, ал баштаган билэлэри POSIX стандартын төмөнкүдөй. Бул режимде, өз ара кабыгынын ENV өзгөрмө жана буйруктар окуп ысымы көбүрөөк маани делосуна чейин аткарылат кеңейтүү. Башка эч бир баштоо Files окуп жатышат.

Баш адатта rshd, алыскы номиналдык Daemon тарабынан жатканда аныктоого аракет кылат. Баш ал rshd менен чуркап жатат аныктаса, ошол билэ баар жана окула турган болсо, ~ / .bashrc буйруктарын аткарат окуп берет. Бул Ш. деп дуба болсо, бул туура эмес болот. --norc параметр бул жүрүм-тоскоол болуу үчүн пайдаланылышы мүмкүн, ал эми --rcfile тандоо окуу керек болгон дагы бир сааты мажбурлоо үчүн пайдаланылышы мүмкүн, ал эми жалпысынан rshd ошол жолдор менен жер кыртышын дуба же көрсөтүлгөн жол бербейт.

Эгерде номиналдык эффективдүү колдонуучу (топ) чыныгы колдонуучу (топ) бирдей эмес, ID ID менен башталган жана -p тандоосу берилген жок, эч кандай баштоо делосу окуп жатышат, номиналдык милдеттери чөйрөнүн атадан тукум кууп өткөн эмес, SHELLOPTS өзгөрмөлүү, айлана-чөйрөгө пайда болсо, эске алынбайт, жана натыйжалуу колдонуучу ID чыныгы колдонуучу ID менен белгиленет. -p параметр дубасы менен камсыз болсо, баштоо жүрүм-турум бир эле, бирок натыйжалуу Колдонуучу ID абалга эмес.

Аныктамалар

төмөнкүдөй түшүнүктөр Бул документтин калган колдонулат.

таза

Бир бош же өтмөк.

сөз

катмары менен бир бүтүн катары каралат белгилердин ырааттуулугу. Ошондой эле бир белгиси катары белгилүү.

ысым

Бир сөз тамга менен баса турган, жана бир тамгадан же баса менен башталган. Ошондой эле бир аныктагычынын деп аталат.

metacharacter

Бир мүнөзүн, түшүүсү, сөзүн бөлүп. төмөнкүлөрдүн бири:

| &; () <> Боштук табулатура

башкаруу оператору

Башкаруу милдетин аткаруучу белги. Ал төмөнкү белгилер бири болуп саналат:

|| & &&; ;; () |

КОРГОЛГОН СӨЗДӨРҮ

Reserved сөздөр катмары үчүн өзгөчө мааниге ээ сөздөр. Төмөнкү сөздөр жөнөкөй буйрук качан түшүүсү, жана да корголгон биринчи сөз катары (төмөндө НомиНАлдЫК грамматика) деп таанылат же ишти же буйругу боюнча үчүнчү сөз:

! Эгерде тандоо чейин, ал эми иш Elif башка esac Fi кылган деп {} убакыт [[]]

НомиНАлдЫК GRAMMAR

Simple буйруктары

Жөнөкөй буйрук бош -separated сөздөр жана багыттоолор кийин, жана башкаруу оператору тарабынан токтотулат кошумча өзгөрмөлүү тапшырмаларды бир тизмеги. Биринчи сөз өлүм жазасына тартууга буйрук белгилейт, ал эми нөл аргумент катары өтүп жатат. Калган сөздөр дуба буйругу аргумент катары кабыл алынат.

Жөнөкөй эле буйрук кайра наркы чыгуу статусу же 128+ н буйрук сигнал N тарабынан токтотулат.

түтүктөр

Бир түтүк мүнөзү менен бөлүнгөн бир же бир нече буйрук бир тизмеги | . газ түтүгү боюнча формат болуп саналат:

[Убакыт [-p]] [! ] Буйрук [| command2 ...]

Буйругу стандарттуу чыгаруу command2 стандарттуу киргизүү чоор аркылуу байланышкан. Бул байланыш буйругу менен белгиленген ар кандай багыттоолор чейин жүргүзүлөт (төмөндө даректи карагыла).

Энчиленген болсо! газ куурун, ал түтүк бүтүрүү статусу логикалык акыркы буйрук чыгуу абалына эмес, мурда. Болбосо, газ куурунун абалы акыркы буйругу боюнча бүтүрүү статусу болуп саналат. маанини кайтып түтүгүнүн бардык буйруктарына карата номиналдык учагынын токтотуу.

Сөзүн корголгон убакыт куурун мурда болсо, өткөн, ошондой эле анын аткарылышына жалмап колдонуучу жана система убакыт түтүк бүтүргөндөн кийин билдирилди. -p параметр POSIX тарабынан көрсөтүлгөн деп чыгаруу түзүлүшү өзгөрөт. TIMEFORMAT өзгөрмө мөөнөт маалымат көргөзүлөт керектигин аныктайт бир формат сапка коюлса мүмкүн; Төмөндө Shell Өзгөрмөлөр боюнча TIMEFORMAT сүрөттөлүшүн кара.

газ түтүгү боюнча ар бир буйрук өзүнчө иш катары жүзөгө ашырылат (башкача айтканда, subshell-жылы).

Lists

Тизмеси операторлордун бири менен бөлүнгөн бир же бир нече суу түтүктөрүнүн бир тизмеги; , &, &&, же || , Жана, бири тарабынан токтотулат; , &, Же .

Бул тизме операторлорунун, && жана || менен бирдей мааниге ээ; жана и, бул бирдей артыкчылыкка ээ.

Бир же бир нече Newlines бир катар буйруктарын араны үтүрлүү ордуна тизмесине да пайда болушу мүмкүн.

Буйрук башкаруу оператору тарабынан токтотулган болсо, &, номиналдык бир subshell менен алкагында буйругун аткарат. Тарабынан бөлүнгөн номиналдык аягына буйругу боюнча, ал кайра статусу 0. командалары болуп, күтө бербейт; аткарылган катары саналат; ар биринин номиналдык учагынын кезегинде токтотууга буйрук. кайра абалы өлүм жазасына акыркы буйругу боюнча бүтүрүү статусу болуп саналат.

Башкаруу операторлору && жана || тиешелүүлүгүнө жараша, тизмелерди жана ЖЕ тизмелерин ЖАНА билдирет. An ЖАНА тизме түрүндө бар

command1 && command2

command2 болсо, ошондой эле эгерде, command1 нөлгө бир чыгуу статусун кайра аткарылат.

An ЖЕ тизме түрүндө бар

command1 || command2

command2 command1 эмес нөл чыгуу статусун кайтарып болсо гана жүргүзүлөт. Жана ЖЕ тизмесин кайра абалы тизмесине аткарылган акыркы буйрук бүтүрүү статусу болуп саналат.

Татаал буйруктары

Татаал буйрук төмөнкүлөрдүн бири болуп саналат:

(Тизме)

тизмеси subshell менен гана аткарылат. команда аяктагандан кийин Shell дин чөйрөгө таасир Variable тапшырмалар жана builtin буйруктар күчүндө эмес. Кайра абалы тизмесин чыгуу абалы болуп саналат.

{Тизмеси; }

тизме жөн учурдагы номиналдык чөйрөдө жүргүзүлөт. тизмеси NEWLINE же үтүрлүү чекит менен токтотулууга тийиш. Бул бир топ буйрук катары белгилүү. Кайра абалы тизмесин чыгуу абалы болуп саналат. Metacharacters айырмаланып кетсек, (жана) {менен} корук сөздөр жана камдык сөз таанылышы үчүн уруксат берилген жерлерде болушу керек. Алар сөз тыныгуу алып келбейт, алар Whitespace менен тизмеден бөлүнүшү керек.

((Сөз))

Сөз айкашы ARITHMETIC баалоо боюнча төмөндө баяндалган эрежелер боюнча бааланат. сөз наркы эмес нөлгө барабар болсо, анда кайра статусу 0 болот; Эгерде кайра статусу 1. Бул "деген сөз айкашы" жол толугу менен барабар болот.

[[Сөз айкашы]]

0 же 1 шарттуу туюнтма сөз баа жараша статусуна кайтаруу. Expressions ШАРТТУУ сөздөр боюнча төмөндө баяндалган негизги тъсъ турат. Word ажыратуу жана атын кеңейүү ортосундагы жүзөгө эмес, [[жана]]; Жакыяга кеңейүү, параметр жана өзгөрүлмө кеңейүү, санариптик кеңейүү, буйрук менен алмаштырып, кайра иштетүү менен алмаштырып, үзүндү алып салуу жүргүзүлөт.

== жана = операторлор колдонулса, оператор укугуна сап Үлгү дал келүүсү боюнча төмөндө баяндалган эрежелер боюнча үлгү болуп эсептелет жана дал келет. кайра балл сап дал же үлгү, тиешелүүлүгүнө жараша, 1 Эгерде дал келбейт, анда 0. үлгү кандайдыр бир бөлүгү, аны сап катары туура мажбурлоо үчүн кылынган болушу мүмкүн.

Expressions кезектүүлүккө тартибин азайтуу боюнча төмөнкү операторлорду пайдалануу менен биригиши мүмкүн:

(Билдирүү)

Сөз маанини кайтарат. Бул операторлордун кадимки артыкчылыгын жокко үчүн гана пайдаланылышы мүмкүн.

! билдирүү

Эгер сөз айкашы Чыныгы туура эмес.

expression1 && expression2

Expression1 жана expression2 да чындык болсо, чыныгы.

expression1 || expression2 же expression1 же expression2 чын болсо, анда чыныгы.

&& жана || операторлор expression1 наркы бүт шарттуу сөз кайра наркын аныктоо үчүн жетиштүү болсо expression2 баалоого болбойт.

аты [сөзүн] үчүн; тизмесин кыл; аткарылган

Төмөнкү сөздөрдүн тизмеси тапшырмалардын тизмесин түзүү, толуктоо. Өзгөрмө аты өз кезегинде бул тизмедеги ар бир элементине коюлса жана тизмеси, ар бир жолу жүргүзүлөт. Сөз кереги жок болсо, эмне үчүн андай буйрук (төмөнкү көрсөткүчтөр карагыла) коюлган ар бир турумдук параметр жолу тизмесин ашырат. кайра абалы ишке акыркы буйругу боюнча бүтүрүү статусу болуп саналат. Буюмдарды кеңейүү бош тизмесине жыйынтыгы төмөнкүдөй болсо, анда эч кандай буйрук аткарылган, жана кайра статусу 0 болот.

үчүн ((expr1; expr2; expr3)); тизмесин кыл; аткарылган

Биринчиден, эсеп сөз expr1 ARITHMETIC баалоо боюнча төмөндө баяндалган эрежелер боюнча бааланат. Санариптик сөз expr2 анда ал нөлгө баалайт чейин бир нече жолу бааланат. Ар бир жолу expr2 эмес нөлгө барабар нарк деп бааланса, тизме менен жүргүзүлөт жана санариптик сөз expr3 бааланат. Ар кандай сөздөр кереги жок болсо, анда ал 1. деп бааланса кайра балл аткарылат тизмесине акыркы буйрук чыгуу статусу, сөздөр болсо, же жалган жараксыз абалда болот.

тандоо аты [сөзүн]; тизмесин кыл; аткарылган

Төмөнкү сөздөрдүн тизмеси тапшырмалардын тизмесин түзүү, толуктоо. жайылып сөздөрдүн жыйындысы стандарттык ката, бир катар мурунку ар бир бетине басылып жазылат. Сөз кереги жок болсо, турумдук параметрлери (төмөнкү көрсөткүчтөр карагыла) басылып чыгат. PS3 тез анда көрсөтүлгөн жана сап-стандартты киргизүү окуп жатат. Сап көрсөтүлгөн сөздөрдүн бирине тиешелүү бир катар турат, анда аты наркы сөзүнө белгиленет. линия бош эмес болсо, сөздөр жана ыкчам кайра көрсөтүлөт. EOF окуп, анда буйрук аяктайт. Кайсы болбосун башка балл себептери анык эмес болуп коюлган аты окуп берди. Сап өзгөрүлмө жооп сакталат. Тизмеси үзүлүшүн буйрук аткарылган чейин ар бир тандап алгандан кийин жүргүзүлөт. Эч кандай буйрук аткарылган болсо, тандоо жана бүтүрүү статусу тизмесине аткарылган акыркы буйрук бүтүрүү статусу, же нөлгө барабар.

окуя сөз [[(] үлгү [| узор]

Бир учурда команда биринчи сөзүн күчөтүп, анын атын экспансия үчүн эле дал келген эрежелерди (төмөндө атын Өсүшкө карагыла) пайдаланып, өз кезегинде ар бир түрүнө каршы дал келет. Эгер дал келгенде, тиешелүү тизме менен жүргүзүлөт. биринчи матчында кийин, эч кийинки дан аракет жатат. эч кандай үлгүгө дал келсе, бүтүрүү статусу нөл. Болбосо, бул тизмеге аткарылган акыркы буйрук бүтүрүү статусу болуп саналат.

тизме болсо; анда Тизмеге; [Elif тизмеси; анда Тизмеге; ] ... башка тизме [; ] Fi

Эгер тизме менен жүргүзүлөт. Анын бүтүрүү статусу нөлгө барабар болсо, анда тизме менен жүргүзүлөт. Болбосо, ар бир Elif тизме кезегинде ишке ашырылып, жана анын бүтүрүү статусу нөлгө барабар болсо, анда тиешелүү тизме менен өлүм жазасына жана буйрук долбоору жатат. Болбосо, башка тизмеси ушул болсо, ишке ашат. чыгуу Статусунда өзгөрүүлөр жок абалы чыныгы сыноодон акыркы буйругу боюнча өлүм жазасына же нөлдүк чыгуу абалы болуп саналат.

Тизмеге эми; тизмесин кыл; аткарылган

Тизмеге чейин; тизмесин кыл; аткарылган

Ал эми команда дайыма эле узун тизмесине акыркы буйрук нөлгө бир чыгуу статусун кайтарып эмне тизмесин ашырат. Чейин буйрук сыноо мизи башка, ал эми буйругуна окшош; Эмне кылуу тизменин катары узун тизмесине акыркы буйругу эмес нөл чыгуу статусун кайра эле жүргүзүлөт. Аз жана буйруктарына чейин бүтүрүү статусу эч ким өлүм жазасына тартылган болсо, акыркы до тизме менен буйрук аткарылат, же нөлдүк чыгуу абалы болуп саналат.

[Function] (аты-жөнү) {тизмеси; }

Бул милдети деген аты аныктайт. Милдетинин орган {менен} ортосундагы буйруктардын тизмеси. Бул тизме аты жөнөкөй буйрук катары белгиленген учурларда жүргүзүлөт. бир милдетинин бүтүрүү статусу органда орындалатын акыркы буйрук бүтүрүү статусу болуп саналат. (Төмөндөгү иш-милдеттерди кара.)

КОММЕНТАРИИ

Болгон эмес өз ара кабыгына, же өз ара сөөктөрүндө shopt builtin үчүн interactive_comments параметр (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла) иштетилген, # менен башталган сөз сөзүн жана саптагы калган бардык белги эске алынбайт себеп болот. Interactive_comments тандоосу эле өз ара номиналдык комментарий жол бербейт иштетилген. Interactive_comments параметр ара орбиталарындагы демейки режимде иштеп турат.

үзүндү

Үзүндү огунан бир тамгалардын же сөздөрдүн өзгөчө мааниге алып колдонулат. Үзүндү келтирип, атайын белгилердин үчүн өзгөчө мамиле өчүрүү үчүн ушундай деп таанылган чейин сакталып сөздөрдү алдын алуу жана параметр экспансиясына алдын алуу үчүн колдонулушу мүмкүн.

АНЫКТАМАЛАР ылайык жогоруда аталган metacharacters ар бир катмары үчүн өзгөчө мааниге ээ жана ал өзү өкүлү болсо, анда келтирилген болушу керек.

Команда тарыхы кеңейүү объект пайдалануу болуп жаткан кезде, тарых кеңейүү мүнөзү, адатта! , Тарых өнүктүрүүгө жол бербөө үчүн келтирилген керек.

Үч үзүндү механизмдери бар: өтмөк белгиси болгондуктан, бир кабарында, жана кош айткан.

Бир эмес айтылган слэш (\) өтмөк белгиси болуп саналат. тышкары, ал, мындайча кийинки мүнөздөгү түзмө-түз маанисин сактап калат. Эгерде \ жуп пайда болот, ал эми келтирилген слэш өзү эмес, \ жип уландысы катары каралган (бул киргизүү агымы жана натыйжалуу четке алып салынды, болот).

бир тырмакчага каармандарды жабат тырмакчаларга ар мүнөздөгү түзмө-түз маанисин сактап калат. Бир укмуштуу бир слэш алдында да, жалгыз бой тырмакчага ортосунда пайда болушу мүмкүн эмес.

Кош тырмакчага каармандарды жабат $, албаганда, саналуу бардык каармандардын түзмө-түз маанисин сактап `, жана \. Каармандар $ жана `кош тырмакчага ичинде өзгөчө маанисин сактап калат. Кайырма, анын өзгөчө мааниге гана төмөнкү каармандардын бири менен сакталып: $, `" \, же A кош тырмакча кыйшык менен мурунку менен кош тырмакчага ичинде кылынган болушу мүмкүн..

Атайын параметрлери жана @ кош тырмакчага (төмөнкү көрсөткүчтөр карагыла) өзгөчө мааниге ээ.

Түрү $ 'жип "деген сөздөр атайын мамиле кылынат. ANSI C стандартындагы Белгиленген алмаштырылат слэш-аман белгиден менен сөз, жип менен ачат. Кайырма качып тизилиши ушул болсо, анда төмөнкүдөй чечмеленет:

\ бир

айгай (коңгуроо)

\ б

өчүрүү

\ д

качып тамга

\ е

түрү түрмөгү

\ н

жаңы сызык

\ р

ташуу, кайра

\ т

горизонталдуу табулатура

\ V

тигинен табулатура

\\

кайырма

\ '

жалгыз тырмакча

\ NNN

алардын наркы сегиз-бит тамга Octal балл NNN болуп саналат (бир үч сан менен)

\ х HH

алардын наркы сегиз-бит тамга он алтылык маани HH болуп саналат (бир же эки болт сан)

\ с х

бир control- х мүнөзү

жайылып натыйжа доллар белгиси ушул сарсанаа жок болгондо, ошондой эле, бир-келтирилген эмес.

Эки-кылынган сап доллар белгиси менен башталат ($) сап учурдагы тил боюнча которулат себеп болот. Учурдагы тил C же POSIX болсо, доллар белгиси эске алынбайт. сап которулду жана алмаштырылган болсо, алмаштыруу эки келтирилген эмес.

параметрлер

Бир параметр баалуулуктарды сактаган бир жандык. Бул атайын параметрлеринин боюнча төмөндө келтирилген атайын белгилердин аталышы, номери, же бир болушу мүмкүн. Shell дин максаттары үчүн, өзгөрмө бир аты менен белгиленет бир параметр болуп саналат. Бир өзгөрмөлүү наркы жана нөлгө барабар же андан көп сыпаттары бар. Касиет-сапаттары буйругун builtin сөзүн (НомиНАлдЫК BUILTIN буйрук төмөндө жарыя карагыла) аркылуу берилет.

Бир параметр ал баасын дайындалган болсо белгиленет. нөл сап жарактуу наркы болуп саналат. Өзгөрмө коюп кийин, ал гана коюлбай builtin буйругун колдонуу менен коюлбай (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла) болушу мүмкүн.

Бир өзгөрмөлүү түрүндөгү арызы боюнча берилиши мүмкүн

аталышы = [балл]

Маани берген эмес болсо, өзгөрүлмө нөл жипти ыйгарылат. Бардык баалуулуктар Жакыяга өнүктүрүүгө, параметрди жана өзгөрүлмө экспансиясына дуушар буйрук алмаштыруу, санариптик экспансия, үзүндү алып салууну (төмөндө кеңейүү карагыла). Өзгөрүлмө анын бүтүн бар атрибуттуу ээ болсо, анда наркы $ болсо да өнүктүрүүгө кошууну субъектери болуп саналат ((...)) экспансиясы (төмөндө Arithmetic Өсүшкө карагыла) колдонулган эмес. Атайын параметрлеринин боюнча төмөндө көрсөтүлгөн Word ажыратуу "$ @" тышкары, аткарылган эмес. Атын кеңейүү аткарылган эмес. Дайындоо отчеттуулук жарыялаш үчүн аргумент катары көрүнүшү мүмкүн, киргенин, экспорттоо, окуу, жана жергиликтүү builtin буйруктарына.

турумдук параметрлери

А турумдук параметр ал дуба кийин бир орундуу санга 0. турумдук көрсөткүчтөр Shell дин талашып жүктөлгөн башка параметр бир же андан көп белги менен белгиленет, жана коюлган builtin буйругу аркылуу дайындалышкан мүмкүн. Турумдук параметрлери тапшырма сөздөрү менен өткөрүлүп берилиши мүмкүн эмес. Номиналдык милдети аткарылган учурда турумдук параметрлери убактылуу алмаштырылган (төмөндөгү иш-милдеттерди көрүү).

Бир санга да турган турумдук параметр толуктоо, ал (төмөндө кеңейүү карагыла) кашаа менен чапталууга тийиш.

Атайын параметрлери

номиналдык атайын бир нече параметрлер мамиле кылат. Бул көрсөткүчтөр гана шилтемелер болушу мүмкүн; аларга өткөрүп берүү мүмкүн эмес.

*

бир баштап, турумдук параметрлери ачат. Кеңейүү кош тырмакчага ичинде пайда болот, ал IFS атайын өзгөрмөнүн биринчи мүнөзү тарабынан бөлүнгөн ар бир параметр наркы менен бир эле сөз менен ачат. Башкача айтканда, "$" барабар "$ 1 C $ 2 с ..." с IFS өзгөрмөнүн наркынын биринчи тамга жерде. IFS коюлбай калса, параметрлери бош орун менен бөлүнгөн. IFS нөл болсо, параметрлери СЕПАРАТОРЫ кийлигишпестен кошулуп жатат.

@

бир баштап, турумдук параметрлери ачат. кеңейүү кош тырмакчага ичинде пайда болгондо, ар бир параметр өзүнчө сөз менен ачат. Башкача айтканда, "$ @" "$ 1" "$ 2 барабар болуп саналат:" ... эч кандай турумдук параметрлер жок болсо, "$ @" жана $ @ жок кеңейтүү (башкача айтканда, алар алынып салынат).

#

ондук менен турумдук параметрлеринин санын өсүшү.

?

мурда аткарылган чагылдыруу куурунун статусу ачат.

-

Учурдагы тандоо желектери дубасы менен көрсөтүлгөн деп кулач коюлган builtin буйрук, же кыртыш өзү тарабынан белгиленген адамдар менен (мисалы, -i тандоосу боюнча).

$

орбитанын жараяны ID менен ачат. бир () subshell, ал учурдагы кабыгына эмес, subshell жараяны ID менен ачат.

!

мурда аткарылган өбөлгөлөрү (асинхрондук) буйругу жараяны ID менен ачат.

0

кабыгы же номиналдык тексттин аталышы менен ачат. Бул катмар жөнөтсүн белгиленет. Баш буйруктарына бир делосуна менен дуба болсо, 0 $, ошол иштин аталышы менен белгиленет. Баш -C каалоосу менен баштаган болсо, анда 0 $ бири бар болсо, өлүм жазасына тартылышы керек сап кийин биринчи аргумент менен белгиленет. Болбосо, бул талаш-нөл тарабынан берилген, Баш туруш үчүн колдонулган билэ атынан коюлган.

_

номиналдык Жандырып жатканда, кабыгы же номиналдык арибин абсолюттук билэ атын аргумент тизмесине өтүп катары ишке ашырылып жаткан. Андан кийин, экспансия кийин, мурунку буйругу акыркы тартышты ачат. Ошондой эле ар бир буйругу аткарылат жана ал буйрукка экспорттолот чөйрөдө жайгаштырылган толук билэ атын койду. почта текшерүүдө, бул көрсөткүч азыркы учурда текшерилип жаткан почта билэ атын ээлейт.

Shell Variables

төмөнкү өзгөрмөлөр катмары тарабынан белгиленет:

BASH

Баш Бул тууралуу чакыруу үчүн толук билэ атын кенейтет.

BASH_VERSINFO

Бир гана кирүүнү Array өзгөрүлмө мүчөлөрү баш ушул Мисалы версия маалымат. Array мүчөлөрүнө жүктөлгөн баалуулуктар болуп төмөнкүлөр саналат:

BASH_VERSINFO [0]

Негизги версия номери (чыгаруу).

BASH_VERSINFO [1]

Жашы жете элек версия номери (версия).

BASH_VERSINFO [2]

жамаачы деңгээл.

BASH_VERSINFO [3]

Build чыгаруу.

BASH_VERSINFO [4]

Релиз абалы (мисалы, beta1).

BASH_VERSINFO [5]

MACHTYPE наркы.

BASH_VERSION

Баш Бул жолкусунда нускасын сүрөттөп сап менен ачат.

турсийим

COMP_LINE

Учурдагы буйрук сап. Бул өзгөрмө гана программалоочу аякташы мекемелеринде менен дуба номиналдык милдеттерин жана тышкы буйрук бар (төмөндө программалоочу аяктоодо карагыла).

COMP_POINT

Kandasiyz?

Бир катар өзгөрүлмө (төмөндө Arrays карагыла) учурдагы буйрук сабында жеке сөздөрдөн турган. Бул өзгөрмө программалоочу аякташы мекемелеринде менен дуба номиналдык милдеттери гана бар (төмөнкү программалоочу аяктоодо карагыла).

DIRSTACK

Бир катар өзгөрүлмө (төмөндө Arrays карагыла) каталог кабат учурдагы мазмунун камтыган. Directories алар builtin К аркылуу чагылдырылат максатында кабат көрүнөт. Бул киет өзгөрмөнүн мүчөлөрүнүн ыйгаруу кабат буга чейин маалымат китепчелерин өзгөртүү үчүн гана пайдаланылышы мүмкүн, ал эми тушуп жана popd builtins кошуу жана китепчелерин алып салуу үчүн колдонулушу керек. Бул өзгөрмөгө берүү азыркы каталогду өзгөрбөйт. DIRSTACK коюлбай калса, аны кийин абалга болсо да, анын өзгөчө касиеттери жоготот.

EUID

номиналдык Жандырып демилгеленди учурдагы колдонуучунун натыйжалуу колдонуучу ID менен ачат. Бул өзгөрмө окуу үчүн гана.

FUNCNAME

ар кандай учурда-аткаруучу номиналдык милдетинин аты. Бул өзгөрмө бир номиналдык милдети аткаруучу гана бар. FUNCNAME үчүн дайындоолор эч кандай күчкө ээ эмес жана ката абалын кайтарып. FUNCNAME коюлбай калса, аны кийин абалга болсо да, анын өзгөчө касиеттери жоготот.

тОПТОР:

Тизилип турган топтордун тизмесин камтыган өзгөрмө учурдагы колдонуучу мүчөсү болуп саналат. Топторго дайындоолор эч кандай күчкө ээ эмес жана ката абалын кайтарып. ТОПТОР коюлбай калса, аны кийин абалга болсо да, анын өзгөчө касиеттери жоготот.

HISTCMD

Учурдагы буйрук тарыхы тизмесине тарыхы саны, же индекси. HISTCMD коюлбай калса, аны кийин абалга болсо да, анын өзгөчө касиеттери жоготот.

HOSTNAME

Жазуусу учурдагы аскер атынан коюлган.

HOSTTYPE

Жазуусу уникалдуу Баш аткаруучу турган машинанын түрүн сүрөттөп сап койду. демейки системасы көз каранды болуп саналат.

Lineno

Ар бир жолу бул параметр маалымдама, номиналдык учурдагы удаалаш линия номери (1 ден баштап) Кол жазма же иш-милдетине ичинде өкүлү ондук санын алмаштыруучу жатат. Кол жазма же иш жок болгондо, алмаштырылат балл маанилүү деп кепилдик берилбейт. Lineno коюлбай калса, аны кийин абалга болсо да, анын өзгөчө касиеттери жоготот.

MACHTYPE

Жазуусу стандарттык GNU CPU-компания-системасы түрдө толугу менен, система кайсы түрүн Баш кылат сүрөттөйт сап койду. демейки системасы көз каранды болуп саналат.

OLDPWD

Мурунку иш каталог CD буйругу менен белгиленген.

OPTARG

Буйругун builtin getopts тарабынан иштелип акыркы чечим талаш наркы (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла).

OPTIND

Кийинки аргументүү буйругун builtin getopts менен иштетилиши керек индекси (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла).

OSTYPE

Жазуусу Баш аткаруучу турган системаны сүрөттөгөн сап койду. демейки системасы көз каранды болуп саналат.

PIPESTATUS

Бир катар өзгөрүлмө (төмөндө Arrays кара) абдан жакынкы жазасына чагылдыруу даядап жараянынан алып чыгуу абалы баалуулуктардын тизмесин камтыган (бир гана буйругун камтышы мүмкүн).

PPID

Shell дин ата жараяны ID. Бул өзгөрмө окуу үчүн гана.

PWD

Учурдагы иш каталог CD буйругу менен белгиленген.

RANDOM

Бул параметр маалымдама жатат сайын, 0 жана 32767 ортосунда кокус бүтүн сан пайда болот. Кокустук номерлер ырааттуулугу туш маани берүү менен ишке ашырылышы мүмкүн. RANDOM коюлбай калса, аны кийин абалга болсо да, анын өзгөчө касиеттери жоготот.

ЖООП

Эч кандай талаш-тартыштар менен камсыз кылып жаткан окуу builtin буйругу менен окуп киргизүү тукумунан коюу.

SECONDS

Бул параметр маалымдама жатат ар бир жолкусунда, номиналдык дубасы бери секунд саны кайтарылып берилет. Бир мааниси секундалар менен берилген болсо, балл берүү бери секунд саны кийинки шилтемелер кайтарылып плюс дайындалган наркы. SECONDS коюлбай калса, аны кийин кайра келет да, анын өзгөчө касиеттери жоготот.

SHELLOPTS

иштетилген номиналдык тандоо чекит менен бөлүнгөн тизмеги. Тизмедеги ар бир сөзү белгиленген builtin буйругу епо тандоо үчүн жарактуу далил (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла). SHELLOPTS пайда жолдор да белгиленген епо тарабынан алынган. Кийин Баш түзүү башталат, бул өзгөрмө чөйрөдө болсо, тизмедеги ар бир номиналдык параметр кандай баштоо материалдары окуганга чейин иштетилет. Бул өзгөрмө окуу үчүн гана берилет.

SHLVL

Бири менен, ар бир жолу баш бир мисалы жатат Көбөйгөн.

UID

номиналдык Жандырып демилгеленди учурдагы колдонуучунун колдонуучу ID менен ачат. Бул өзгөрмө окуу үчүн гана.

төмөнкү өзгөрмөлөр катмары тарабынан пайдаланылат. Кээ бир учурларда, баш өзгөрмөгө демейки маани энчилегенге; Бул учурлар келтирилген.

BASH_ENV

Бул параметр Баш номиналдык скрипт аткаруучу жатканда коюлса, анын мааниси, ~ / .bashrc эле, жер кыртышын ишке буйруктарды камтыган аты деп да которулат. BASH_ENV наркы параметр экспансия, буйрук алмаштыруу, жана санариптик экспансия үчүн билэ аты катары чечмеленбөөгө чейин дуушар болгон. PATH пайда билэ атын издөө үчүн колдонулган эмес.

CDPATH

CD буйругу боюнча издөө жол. Бул катмар CD буйругу менен белгиленген көздөгөн каталогдорго издейт турган көрсөткүчтөрдүн бир чекит менен бөлүнгөн тизмеги болуп саналат. Мисал катары берилген маани ". ~: / Окудум".

мамычалар

Тандалган builtin буйругу менен Жүргөн тандоо тизмесин басып жатканда терминалдык туурасын аныктоо. Жазуусу бир SIGWINCH алгандан кийин коюлган.

COMPREPLY

Баш программалоочу аяктаган объектини менен дуба номиналдык кызматтары түзүлгөн мүмкүн толтуруусун окуп турган бир катар өзгөрүлмө (төмөндө программалоочу аяктоодо карагыла).

FCEDIT

FC builtin буйругу үчүн демейки редактору.

FIGNORE

Аты аякташын (Readline төмөндө кара) аткарууда? Рт бир чекит менен бөлүнгөн тизмеги көрмөксөн. Кимдин SUFFIX бир аты FIGNORE жазуулардын бири дал келген аты тизмесинен алынып салынат. Тандалма Наркы ": ~ ча" болуп саналат.

GLOBIGNORE

аты топтомун аныктоо үлгүлөрүнүн бир чекит менен бөлүнгөн тизмеги атын өсүшү менен четке кагылышы керек. Бир жол атын кеңейүү үлгүсүнө дал бир аты эле GLOBIGNORE менен оймо-бири менен дал келсе, анда ал окшоштуктар тизмесинен алынып салынат.

HISTCONTROL

Ignorespace деген мааниге коюлса, боштук менен башталат саптар тарыхы тизмесине киргизилген эмес. Ignoredups деген мааниге коюлса, өткөн тарых линиясын дал саптар кирген эмес. Ignoreboth бир балл, эки жолу айкалыштырат. Эгер коюлбаса, же жогору эмес, каалаган башка мааниге коюлса, анда Parser окуп бардык багыттар тарыхы тизмесине сакталат, HISTIGNORE наркын эске алуу менен. Бул өзгөрмө милдети HISTIGNORE менен жоюлуп жатат. Көп линия татаал буйругу жаткан экинчи жана андан кийинки саптар сыналган жана карабастан HISTCONTROL наркын тарыхына кошулат эмес.

HISTFILE

Тарыхын буйрук болгон иштин аталышы (төмөндө HISTORY карагыла) сакталат. Жарыяланбаган маани ~ / .bash_history болуп саналат. Эгер коюлбаса, буйрук тарыхы келгенде өз ара номиналдык эшик сакталган эмес.

HISTFILESIZE

тарыхы камтылган саптардын жогорку чеги. Бул өзгөрмө маани берилгенде, тарыхы, эгер зарыл болсо, линияларын бул саны көп эмес болушу керек, түзүлсө. жарыяланбаган маани 500. болуп тарыхы келгенде өз ара номиналдык чыга аны жазып алгандан кийин да бул өлчөмүнө түзүлсө.

HISTIGNORE

Бул чечим үчүн пайдаланылган үлгүлөрүнүн бир чекит менен бөлүнгөн тизмеги саптар тарыхы тизмесинде сакталган керек буйрук. Ар бир үлгү сызыктын башында кеме казыктай жана толук сызык дал келиши керек (эч кандай толук `*" тиркелет). Ар бир үлгү HISTCONTROL тарабынан белгиленген чектер колдонулат кийин сап менен текшерилет. Белгилер Дал кадимки номиналдык үлгүсүнө тышкары, `& мурунку тарыхы сызык дал келет. `&" Кыйшык аркылуу аман болот; кайырма дал мурун алынып жатат. Көп линия татаал буйругу жаткан экинчи жана андан кийинки саптар сыналган жана карабастан HISTIGNORE наркын тарыхына кошулат эмес.

HISTSIZE

Командалардын саны буйрук тарыхы (төмөндө HISTORY карагыла) эстеп. жарыяланбаган маани 500 болуп саналат.

ҮЙ

Учурдагы колдонуучунун үй каталог; CD builtin буйругу үчүн демейки аргумент. Жакыяга өнүктүрүүгө аткарууда бул өзгөрмөнүн дагы колдонулат.

HOSTFILE

/ Эле түрдө бир иштин аталышын камтыйт ж.б. / номиналдык бир хост бүтүрүү керек болгондо окуу керек өтүүдө. мүмкүн хост аяктоо тизмеси кабыгы иштеп жатканда өзгөртүлүшү мүмкүн; кийинки жолу хост аяктоо балл өзгөрдү кийин аракетин, Баш учурдагы Тизмеге жаңы делосуна мазмунун кошумчалайт. Эгерде HOSTFILE коюп, бирок, эч кандай мааниси жок, Баш мүмкүн хост аяктоо тизмесин алуу / ж.б. / кошуундары, окууга аракет кылган. HOSTFILE коюлбай калса, түйүндүн тизме тазаланып турат.

IFS

Ички Талаа ажыраткыч экспансия кийин сөз майдалоо үчүн пайдаланылат жана окуп builtin буйругу менен сөз саптар жарып. жарыяланбаган маани `` <орун> <табулатура> ' "болуп саналат.

IGNOREEOF

Содержание киргизүү сыяктуу EOF мүнөздөгү келип түшкөн боюнча өз ара кабыгына аракетин көзөмөлдөйт. Коюлса, нарк Баш чыга электе киргизүү Саптын биринчи каармандардын бири катары терилген керек ырааттуу EOF тамгалардын саны болуп саналат. Өзгөрмө бар, бирок сан мааниси жок болсо, же эч кандай мааниси жок, демейки маани 10. жок болсо, EOF кабыгына киргизүү аякташын билдирет болуп саналат.

INPUTRC

~ / .inputrc демейки оюна Readline баштоо для аты, (Readline төмөндө кара).

Lang

Атайын LC_ менен өзгөрмө тартып тандалган эмес, ар бир категория үчүн тил категориясын аныктоо үчүн колдонулат.

LC_ALL

Бул өзгөрмөлүү Lang маанисин жана тил категориясын көрсөтүү менен ар кандай башка LC_ өзгөрмө жокко чыгарат.

LC_COLLATE

Бул өзгөрмө атын экспансия жыйынтыгын сорттоо учурунда бүтүмүн тартипти колдонулган аныктайт, ошондой эле жол атын экспансия жана үлгү дал келүүсү ичинде диапазону туюнтмаларды, бирдей класстарды, даярдоону тизмектеринин жүрүм-турумун аныктайт.

lc_ctype

Бул өзгөрмөлүү белгилердин маанисин жана атын экспансия жана үлгү дал келүүсү ичинде мүнөзү класстардын жүрүм-турумун аныктайт.

lc_messages

Бул өзгөрмө бир $ алдында эки келтирилген саптарды которууга колдонсо тил аныктайт.

lc_numeric

Бул өзгөрмө саны түзүү үчүн колдонулган тил категориясын аныктайт.

LINES

Тандалган builtin буйругу менен Жүргөн тандоо тизмесин басып чыгаруу үчүн бардык мамычаларды бөлүп узундугун аныктоо. Жазуусу бир SIGWINCH алгандан кийин коюлган.

MAIL

Бул параметр сөп аты коюлса жана MAILPATH өзгөрүлмө коюлган эмес болсо, Баш көрсөтүлгөн иштин почта келген колдонуучу маалымдайт.

MAILCHECK

(Ар секундалык) канчалык көп белгилейт почта үчүн Баш текшерет. демейки 60 секунд. почта текшерип турган убак келгенде, номиналдык негизги бат көрсөтүү алдында турат. Бул өзгөрмө коюлбай калса, же нөлгө барабар болгон сан же барабар жогору эмес мааниге коюлганда, номиналдык почта текшерүү өчүрөт.

MAILPATH

билэ аттары бир чекит менен бөлүнгөн тизмеги почта үчүн текшерүү керек. бир кабар почта бир делосуна келгенде басылып менен кабардан билэ атын бөлүп тарабынан көрсөтүлүшү мүмкүн `?". Билдирүүнүн текстине колдонулганда, $ _ учурдагы mailfile атын кенейтет. мисал:

MAILPATH = '/ VAR / почта / bfox "Сен кат бар"? ~ / Катмар-почта "$ _ почта бар!"

Баш бул өзгөрмөнүн үчүн демейки маани берүүчү, ал эми аны колдонуп колдонуучу почта материалдарын жайгашкан системасы көз каранды (мисалы, / VAR / почта / $ USER) болуп саналат.

OPTERR

1 маанисине коюлса, Баш буйругун builtin getopts тарабынан ката билдирүүлөрдү көрсөткөн (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла). OPTERR 1 сайын кабыгы демилгеленди турат талап кылынса же номиналдык скрипт аткарылат.

PATH

буйруктарына издөө жолдору. Бул катмар буйруктарына (төмөндө буйругу аткарылышы карагыла) издейт турган көрсөткүчтөрдүн бир чекит менен бөлүнгөн тизмеги болуп саналат. Демейки жол системасы көз каранды, ал эми Баш орнотуп администратор тарабынан белгиленет. Жалпы наркы `` / окудум / GNU / бин болот: / окудум / Жергиликтүү / бин: / окудум / UCB: / бин: / окудум / бин :. ''.

POSIXLY_CORRECT

Баш башталат Бул өзгөрмө чөйрөдө болсо, номиналдык --posix Дубасы параметр берилген салгандай эле баштоо материалдары окуганга чейин POSIX режимди кирет. Бул катмар иштеп жатканда коюлса, Баш епо POSIX коюуга буйрук аткарылган салгандай эле, POSIX режимди берет.

PROMPT_COMMAND

коюлса, мааниси ар бир негизги бат берүү чейин буйрук катары жүргүзүлөт.

PS1

Бул параметрдин (төмөндө кыскача кара) көбөйгөнүнө жана алгачкы тез сап катары колдонулат. Жарыяланбаган маани `` \ S- \ а \ $ '' болуп саналат.

PS2

Бул параметрдин PS1 менен өздөштүрүп, экинчи сап сап катары колдонулат. Демейки ``> ' "болуп саналат.

PS3

Бул параметрдин коюуга буйрук үчүн калыпка катары колдонулат (жогоруда НомиНАлдЫК Грамматика карагыла).

PS4

Бул параметрдин PS1 менен толуктоо жана нарк боюнча аткаруу изи учурунда ар бир буйрук Баш көргөзмө алдында басылып жатат. PS4 биринчи тамга бир нече жолу кайталанат, ошондой эле зарыл болгон учурда, бир нече indirection өлчөмдө көрсөтүлөт. Демейки `` + '' болуп саналат.

TIMEFORMAT

Бул параметрдин убакыт корголгон сөзү жакка түтүк мөөнөт маалымат көргөзүлөт керектигин көрсөтүү формат сап катары колдонулат. % Мүнөзү убакыт наркы же башка маалыматтарды толуктоо качып ырааттуулукту киргизет. качып удаалаштыктары жана алардын маанилери болуп төмөнкүлөр саналат; кашаалар кошумча бөлүктөрүн билдирет.

%%

Кадимки%.

% [Б] [л] R

секунданын ичинде өткөн убакыт.

% [Б] [л] U

CPU секунд саны колдонуучу режимде өткөргөн.

% [Б] [л] S

системасы режимде өткөргөн CPU секундалык саны.

% P

CPU пайыздык, эсептелген (% U +% S) /% R.

Кошумча б ондук кийин так, бөлчөк сан санын көрсөтүү орундуу болот. 0 Бир мааниси чыгуу үчүн эч кандай ондун же бөлчөк себеп болот. чекиттен кийинки көпчүлүк учурда үч орун көрсөтүлүшү мүмкүн; 3 жогору б баалуулуктар 3. үчүн өзгөртүлгөн б көрсөтүлгөн эмес болсо, анда балл 3 колдонулат.

Кошумча л түрү MM м ССтин ичинде мүнөттөн узагыраак түзүлүшү, белгилейт. FF с. Б наркы бөлчөк киргизилген же жокпу аныктайт.

Бул өзгөрмө коюлган эмес болсо, баш ал наркы $ '\ nreal \ т% 3lR \ nuser \ т% 3lU \ nsys% 3lS "болсо, анда катары иш алып барат. Наркы анык болсо, анда эч кандай убактысы жөнүндө маалымат көрсөтүлөт. формат сап көрсөтүлөт качан артта NEWLINE кошулат.

TMOUT

Нөлдөн жогору мааниге коюлганда болсо, TMOUT builtin окулган үчүн демейки күтүү убакыты катары каралат. Тандоо буйрук киргизүү киргизүү терминалдан келе жатат TMOUT секунддан кийин келген эмес болсо, токтотулат. бир ара кыртыш-жылы негизги баалуулугу бат ачкандан кийин киргизүү күтүп секунд экендигин чечмелеп бере алат. Киргизүү келген эмес болсо, Баш секунд ошол санына күтүп кийин токтотулат.

auto_resume

Бул өзгөрмө кабыгы колдонуучу жана жумуш контролдоо менен кантип өз ара көзөмөлдөйт. Бул өзгөрмө коюлса, багыттамалар жок бир сөз жөнөкөй буйрук болгон токтотуп жумушту баштоо үчүн талапкерлер катары каралат. жол жок так эместиктер бар; терилген сап менен башталган бир эмес, бир нече иш бар болсо, анда жакында эле кирген көпчүлүк жумуш тандалды. Бир токтоп жумуш аталышы, ушул алкакта, аны баштоо үчүн буйрук сап болуп эсептелет. Эгер коюлган наркы так, сап так токтотуп, жумуш менен дал келиши керек берилген; саптар коюлса, анда берилген сап бир токтоп жумуш атынан бир саптар дал керек. Саптар балл% окшош аракет менен камсыз кылат? жумуш аныктагыч (төмөндө КЫЗМАТТЫК КӨЗӨМӨЛГӨ карагыла). каалаган башка мааниге коюлса, берилген сап бир токтоп Аюбдун аты бир сөздөн болушу керек; Бул% жумуш таануучу окшош аракет менен камсыз кылат.

histchars

Тарыхы жана эл tokenization контролдоо, эки же үч тамга (төмөндө HISTORY экспансия карагыла). Биринчи тамга тарыхы кеңейүү мүнөзү, тарых экспансия, адатта, `башталышы белгилери мүнөзү болуп саналат! '. Экинчи тамга буйругу менен дагы бир сап алмаштыруучу кирген мурунку буйрукту кайра чуркап үчүн кыскача катары колдонулат тез алмаштыруу тамга болуп саналат. Демейки `^" болуп саналат. Кошумча үчүнчү тамга линиясын калган бир сөздүн биринчи мүнөзү, адатта, `#" деп табылган бир комментарий экендигин көрсөтүп турат мүнөзү. тарыхы комментарий белгиси саптан калган сөздөр айтылбай турган тарыхы менен алмаштырып келет. Бул сөзсүз эле номиналдык талдоочу комментарий чубалгысынан калган мамиле кылууга түрткү бербейт.

Arrays

Баш бир өлчөмдүү көрүүнүн өзгөрмө камсыз кылат. Силер эч качан Индиянын бир катар-катары колдонулушу мүмкүн; жарыялаган builtin ачык көптөгөн жарыялайм. тизилип өлчөмү да мүчөлөрү contiguously индекстелет же берилиши кандайдыр бир талабы боюнча эч кандай жогорку чеги жок. Arrays бүтүн сан менен кошо индекстелет жана нөлдүк негизделет.

Каалаган өзгөрмө синтаксисин атын [астынкы] = Наркы аркылуу берилген болсо, бир катар эсеп жазуусу жаратылды жатат. Астынкы нөлдөн төмөн же барабар бир катар жогору баалайт керек эсептөө билдирүү катары каралган. Ачык көптөгөн деп табылсын, биригип ысмын жарыя колдонуу (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла). -a ысмын жарыя [астынкы], ошондой эле кабыл алынган; астынкы эске алынбайт. Касиет-сапаттары менен аруулайбыз жана кирүүнү builtins колдонуу менен бир катар өзгөрмөнүн үчүн белгилениши мүмкүн. Ар бир сыпат тизилип бардык мүчөлөрүнө тиешелүү.

Arrays ар бир балл түрүндө [астынкы] = сап эмес түрү аты = (балл 1 ... балл н), жана татаал тапшырма менен дайындалат. Гана сап талап кылынат. милдеттүү түрдө кашааларды же астынкы камсыз болсо, бул көрсөткүч дайындалган; Эгерде берилген элементтин индекси бир кошумча арыз менен дайындалган акыркы көрсөткүч болуп эсептелет. Индекстөө нөлгө башталат. Бул синтаксисин да жарыялаган builtin тарабынан кабыл алынат. Жеке Array элементтер жогоруда киргизилген атын [астынкы] = балл синтаксисин аркылуу берилиши мүмкүн.

Коюлбай builtin Arrays жок кылуу үчүн колдонулат. коюлбай аты [астынкы] индекси астынкы боюнча Array элементи жок. аты астынкы же @ болгон бир катар, же коюлбай аты [астынкы], ал коюлбаса, аты-жөнү, бүт толгон жок.

Жарыялагыла, жергиликтүү өз алдынча башкаруу жана кирүүнү builtins ар бири көптөгөн тактоо үчүн биригип параметрин кабыл. Builtin оку тизилип стандарттык киргизүү окуп сөздөрдүн тизмесин дайындоо үчүн биригип параметрин кабыл алат. Аларды тапшырма катары кайрадан мүмкүндүк берген жол менен builtins дисплей тутуму баалуулуктарды белгиленген жана жарыялайт.

? ш?

Кеңейүү сөз бөлүнүп кийин буйрук сабында жүзөгө ашырылат. Кеңейүү жети түрү бар жүзөгө: кашаа экспансия, Жакыяга экспансия, төмөнкү параметр менен өзгөрмөлүү экспансия, буйрук алмаштыруу, санариптик экспансия, сөз бөлүү жана жол атын экспансия.

арттырууга буйругу эсептелет: кашаа кеңейүү, Жакыяга кеңейүү, параметр, өзгөрүлмө жана санариптик экспансиясы жана буйрук менен алмаштыруу (а солдон оң ​​тагдыр кылган), сөз бөлүнүү жана атын кеңейүү.

Колдоо көрсөтө алат системалары жөнүндө, кошумча кеңейүү колдо бар: жараян алмаштыруу.

Brace көбөйтүү

Brace кеңейүү негизсиз саптар түзүлгөн мүмкүн болгон бир механизм болуп саналат. Бул механизм атын экспансия окшош болот, бирок түзүлгөн аты жок эмес. Patterns кашаа кошумча PostScript кийин кашаа бир жуп ортосундагы үтүр менен ажыратып кылдуу бир катар кошумча преамбуласына түспөлүн, талап күч болот. преамбула кашаа ичиндеги ар бир сапты жакка жана жазыптыр анда солдон көлөмүнө байланыштуу, ар бир чыккан сапка тиркелет.

Brace Голдман камтылган болушу мүмкүн. Ар бир кулач жип натыйжалары сорттолгон эмес; туура тартипте калган сакталып турат. Мисалы, {г, с, б} электрондук `Ade жопа Абэ:" салып ачат.

Brace кеңейүү башка аймактарды чейин жүзөгө ашырылат, ал эми жыйынтыгында башка аймактарды өзгөчө эч кандай белгилер сакталып турат. Бул толугу менен наклий болот. Баш жайылуу шарттарында же кашаалар ортосунда тексттин ар кандай синтаксистик жоруп колдонулбайт.

Бул курган түзүлөт саптардын жалпы приставка, жогоруда мисалда көрсөтүлгөндөй узагыраак болсо, адатта, кыскача катары колдонулат:

mkdir / окудум / Жергиликтүү / МКК / Баш / {эски, жаңы, рай, мүчүлүштүктөр}

же

Чоун тамыры /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Brace кеңейүү Ш. тарыхый түрү менен бир аз келбестигин киргизет. Sh алар сөздүн бөлүгү катары пайда болгондо ачуу же жабуу атайын жазуучуларга мамиле эмес, жана көлөмүн, аларды сактап калат. Баш кашаа экспансия кесепетинен сөздөрдөн курс жок. Мисалы, сөз өндүрүшүнүн билэ {1,2} айырмасыз пайда болуп Sh кирген. Ошол эле сөздү Баш экспансия кийин file1 file2 катары чыгаруу болуп саналат. Ш. катуу келүүчүлүк каалаган болсо, анда коюлган буйругун + B тандоосу менен + B тандоосу же өчүрүү кашаа экспансия менен Баш башталат (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла).

кошумча барактардын жардамы көбөйтүү

Бир да сөз түшүүсү Жакыяга мүнөз менен башталат ( `~") болсо, анда биринчи түшүүсү, сызык алдындагы каармандардын (же эч кандай түшүүсү слэш жок болсо, бардык белгилер,) баары Жакыяга-Prefix эсептелет. Жакыяга-Prefix IN каармандардын келтирилген эмес болсо, анда кошумча барактардын төмөнкү Жакыяга-Prefix IN каармандар мүмкүн кирүү аты катары каралат. Бул кирүү аты нөл сап болсо, Жакыяга номиналдык параметр ҮЙДӨ наркы менен алмаштырылган. ҮЙ коюлбай калса, жер кыртышын аткаруучу пайдалануучунун үй каталог ордуна менен алмашылган. Болбосо, Жакыяга-Prefix белгилүү кирүү аты менен байланышкан үй каталогуна менен алмаштырылган.

Жакыяга-приставка бир `~ +" болсо, кабыгына өзгөрүлмө PWD наркы Жакыяга-байлм алмаштырат. Жакыяга-приставка бир `болсо ~ - ', номиналдык өзгөрмөнүн OLDPWD мааниси коюлбай калса, алмаштырылып жатат. , Жакыяга-приставка, каталог пачкадан экинчисине тийиштүү элементи менен алмаштырылган көрсөтүлөт эле - Жакыяга-Prefix IN Жакыяга төмөнкү белгилер бир катар N турган болсо, каалашынча бир `+ 'же`' жакка К-нын бир аргумент катары Жакыяга-менен барактарды дуба builtin. Жакыяга-Prefix IN Жакыяга төмөнкү белгилер бир катар турган жок болсо, `+ 'же` - "парник газдарын,` + "болжолдонууда.

кирүү аты жараксыз болуп калса, же болбосо Жакыяга кеңейүү албаса, сөз өзгөртүлбөйт.

Же =: Ар бир өзгөрмө тапшырма түшүүсү Жакыяга-жазам дароо төмөнкүлөр текшерилет. Мындай учурларда, Жакыяга жайылтуу, ошондой эле жүзөгө ашырылат. Ошондуктан, бир жолго тапшырмаларда tildes менен билэ атын пайдалана алат, MAILPATH жана CDPATH жана орбитанын көбүрөөк маани энчилегенге.

Parameter көбөйтүү

`$ 'Тамга параметр өнүктүрүүгө, буйрук алмаштыруу, же санариптик экспансия киргизет. көбөйтүү керек Көрсөткүчтүн аталышы же белгиси ыктыярдуу болуп саналат, ал эми өзгөрүлмө тамгалардын чейин көбөйтүү керек дароо атынан бир бөлүгү катары баа берүүгө болот, аны төмөнкү коргоо үчүн кызмат кашааларга, тиркелген мүмкүн.

Кашаалар колдонулса, дал удаалаш аягында биринчи `} 'кыйшык же келтирилген сап ичинде качып кутулган эмес жана жок камтылган эсеп экспансия ичинде, буйрук алмаштыруу, же paramter экспансия.

Параметрдин мааниси менен алмашылган. Кашаалар параметр бирден ашык санга менен турумдук параметр болгондо талап кылынат, же параметр өз атынан бир бөлүгү катары чечмеленбөөгө тийиш эмес, бир каарман менен болгондо.

Төмөндөгү учурларда ар бир сөзү Жакыяга экспансия, параметр экспансия, буйрук алмаштыруу, жана санариптик экспансия тийиш. Саптар экспансиясына качан жүзөгө ашырган жок, коюлбаса же анык эмес болуп параметр боюнча Баш тесттер; коюлбай бир параметр үчүн гана сыноого чекит материалдар Ос.

По умолчанию баалары колдонуу. Параметр коюлбаса же анык эмес болсо, Кудайдын сөзүн үйрөтүп, жайылтуу менен алмашылган. Болбосо, Параметрдин мааниси менен алмашылган.

По умолчанию дайындайбыз. Параметр коюлбаса же анык эмес болсо, Кудайдын сөзүн үйрөтүп, жайылтуу параметр жүктөлөт. Параметрдин мааниси андан кийин алмашылган. Турумдук параметрлери жана атайын параметрлери ушундай жол менен өткөрүлүп берилиши мүмкүн эмес.

Эгер КР же коюлбай Display Error. Параметр нөлдүк же коюлбай калса, сөзү экспансиясы (же сөз жок болсо, анда бул жөнүндө кабар) аны өз ара аракеттенүү жок болсо, стандарттык ката жана кабыгына жазылган, эшик. Болбосо, Параметрдин мааниси менен алмашылган.

Кыйгап баасы колдонуу. Параметр нөлдүк же коюлбай калса, эч нерсе, эгерде сөз кылуу менен алмашылган менен алмаштырылып жатат.

Аттары менен барактарды башталат, IFS атайын өзгөрмөнүн биринчи мүнөзү менен бөлүнүп өзгөрмөлөр аттарына ачат.

Параметрдин наркынын тамгалар менен узундугу менен алмашылган. Параметр * же @ болсо, алмаштырылат балл турумдук көрсөткүчтөрдүн саны болуп саналат. Параметр * же @ тарабынан жазылып бир катар аты болсо, алмаштырылат балл тизилип элементтеринин саны.

Деген сөз жөн гана атын экспансия эле бир үлгү өндүрүү өсүп жатат. Узор параметр наркынын башталышы менен дал келсе, анда экспансия натыйжасы кыска дал үлгү менен параметрдин өсүп наркы ( `` # '' учур) же узун дал үлгү ( `` ## ' 'учур) жок кылынды. Параметр @ же * болсо, үлгү алып салуу операция өз кезегинде ар бир турумдук параметр колдонулат, жана кеңейүү жыйынтык тизмеси болуп саналат. Параметр @ же * менен жазылып бир катар өзгөрүлмө болсо, үлгү алып салуу операция кезегинде тизилип, ар бир мүчөсү үчүн колдонулат, жана кеңейүү жыйынтык тизмеси болуп саналат.

Деген сөз жөн гана атын экспансия эле бир үлгү өндүрүү өсүп жатат. Узор параметрдин жайылып наркынын бир кес бөлүгүн дал келсе, анда экспансия натыйжасы өсүп кыска дал үлгү менен параметрдин ( ``% '' учур) же узун дал үлгү ( ``% түзөт % '' учур) жок кылынды. Параметр @ же * болсо, үлгү алып салуу операция өз кезегинде ар бир турумдук параметр колдонулат, жана кеңейүү жыйынтык тизмеси болуп саналат. Параметр @ же * менен жазылып бир катар өзгөрүлмө болсо, үлгү алып салуу операция кезегинде тизилип, ар бир мүчөсү үчүн колдонулат, жана кеңейүү жыйынтык тизмеси болуп саналат.

Үлгүсүнө атын экспансия эле бир үлгү өндүрүү өсүп жатат. Көрсөткүчтүн өздөштүрүп, анын маанисине караганда тъзъмъндё узак дал жип менен алмаштырылган эмес. биринчи түрүндө гана биринчи матч алмаштырылган. Экинчи түрү түрүнө карабастан бардык дан жип менен алмаштыруу керек болот. Узор # менен баштаса, аны төмөнкү параметр менен жайылып наркы башында дал келиши керек. Узор% менен баштаса, аны төмөнкү параметр менен жайылып наркы жылдын акырына карата абал боюнча дал келиши керек. Сап нөл болсо, үлгү боюнча дан жок жана / төмөнкү үлгү капарга албай коюуга мүмкүн эмес. Параметр @ же * болсо, алмаштыруу операция өз кезегинде ар бир турумдук параметр колдонулат, жана кеңейүү жыйынтык тизмеси болуп саналат. Параметр @ же * менен жазылып бир катар өзгөрүлмө болсо, алмаштыруу операция кезегинде тизилип, ар бир мүчөсү үчүн колдонулат, жана кеңейүү жыйынтык тизмеси болуп саналат.

Command алмаштырып

Command алмаштыруу бир буйрук чыгаруу буйрук атын алмаштырууга мүмкүндүк берет. эки түрү бар:

$ (Буйрук)

же

`` Буйрук

Баш жок кандайдыр бир орунду ээлеп Newlines менен буйрук аткаруучу жана буйрук стандарттык өндүрүшүнүн менен буйрук алмаштыруу алмаштыруу менен өнүктүрүүгө аткарат. Камтылган Newlines жок эмес, бирок алар сөз ажыралуу учурунда алынып салынышы мүмкүн. Команда алмаштыруу $ (кошка билэ) барабар, бирок тезирээк $ (<билэ) менен алмаштырылышы мүмкүн.

Эски стилдеги backquote алмаштыруу колдонгон учурда, слэш $ кийин башка учурларда, анын түзмө-түз маанисин сактап, `, же \. кыйшык алдында эмес, биринчи backquote буйрук алмаштыруу токтотулат. $ (Буйрук) түрүн колдонуп жатканда, кашаанын ортосундагы бардык белгилер буйругун түзөт; да атайын мамиле кылынат.

Command ордун алмаштыруу камтылган болушу мүмкүн. backquoted түрүн колдонуп уя үчүн, тетири менен ички backquotes качып.

алмаштыруу кош тырмакчага чегинде пайда болсо, анда сөз ажыратуу жана атын кеңейүү жыйынтыктары боюнча аткарылган эмес.

Arithmetic көбөйтүү

Arithmetic кеңейүү бир эсептөө билдирүү баа берүү жана натыйжасында алмаштыруу берет. эсеп экспансия боюнча формат болуп саналат:

$ ((Сөз))

Сөз айкашы, ал кош тырмакчага ичинде болсо катары каралат, ал эми кашаанын ичинде кош тырмакча атайын мамиле жок. сөз Бардык Токендер параметр өнүктүрүүгө, сап көбөйтүп, буйрук алмаштырууну, ошондой эле аудио алып өтүшөт. Arithmetic ордун алмаштыруу камтылган болушу мүмкүн.

Баалоо ARITHMETIC баалоо боюнча төмөндө көрсөтүлгөн эрежелер боюнча жүзөгө ашырылат. Сөз айкашы туура эмес болсо, баш жана ийгиликсиздик жөнүндө кабар пайда жок алмаштыруу басып чыгара алат.

Process алмаштыруу

Process алмаштыруу деген түтүктөр (FIFOs) же / иштеп чыгуучунун / FD ачык материалдары ат ыкмасын колдоого системалары боюнча колдоого алынат. Бул <(тизме) же> (тизме) түрүндө болот. Жараян тизме / иштеп чыгуучунун / FD бир FIFO же бир делосуна байланыштуу өзүнүн киргизүү же өндүрүшүнүн менен жүргүзүлөт. Бул аты экспансия натыйжасында учурдагы буйругуна аргумент катары өтүп жатат. > (Тизме) колдонгон болсо, делосуна жазуу тизмесине киргизүүнү камсыз кылат. <(Тизме) колдонгон болсо, аргумент катары өтүп билэ тизме өндүрүүнү алуу үчүн окуу керек.

Жеткиликтүү, технологиялык алмаштыруучу төмөнкү параметр менен өзгөрмөлүү экспансия, буйрук алмаштыруу, жана санариптик экспансия менен бир учурда жүзөгө ашырылат.

Word бөлүү

Номиналдык параметр экспансия жыйынтыгын арытат, буйрук алмаштыруу жана сөз ажыралуу кош тырмакчага ичинде жүргүзүлгөн эмес эсеп экспансия.

Катмар бир Бөлүүчү катары Ifs ар бир мүнөзгө мамиле, бул каармандын жөнүндө сөз башка аймактарды жыйынтыгын бөлүнүшү. Эгерде IFS коюлбаса, же анын наркы так эмес <орун> <табулатура> , демейки, анда IFS каармандардын кайсы бир катар сөздөрдү араны аныктоо үчүн кызмат кылат. IFS демейки башка мааниге ээ болсо, анда боштуктар жана мейкиндик барагынын ырааттуу башында жана сөзүнүн аягында эске алынбайт, ошондой эле көп Художник мүнөзү Ifs наркынын болуп саналат (бир IFS Художник белги). IFS Художник эмес, Ifs менен ар бир тамга, ар бир чектеш IFS боштуктар менен бирге, жер зоналары так. IFS Художник каармандардын бир катар да Бөлүүчү катары мамиле кылат. Ifs мааниси анык болсо, пайда жок сөз бөлүү.

Айкын анык далилдер ( "" же "") сакталып турат. эч кандай мааниге ээ көрсөткүчтөрдүн өсүшү натыйжасында түшүүсү, толук анык далилдери, алынып салынат. эч кандай баалуулугу менен параметр кош тырмакчага ичинде өсүп турган болсо, бир нөл аргумент жыйынтыгы жана сакталууга тийиш.

эч кандай пайда кеңейүү болсо, анда эч кандай бөлүнүү жүргүзүлөт кетсек.

атын көбөйтүү

Сөз бөлүү кийин, -f мүмкүнчүлүк түзүлдү каралбаса, Баш тамгалардын үчүн ар бир сөздү окуй баштайт? , Жана [. Бул белгилердин бири пайда болсо, анда сөз үлгү болуп эсептелет жана үлгүсүнө дал билэ аталыштар боюнча алиппе тизмеси Сорттолгон менен алмаштырылган. Дал келген билэ аттары ашык болсо, ал эми номиналдык параметр nullglob майып болуп, сөз өзгөрүүсүз калат. Эгерде nullglob параметр коюлса, эч дан ашык болуп, сөз алынып жатат. Номиналдык параметр nocaseglob иштетилген болсо, дал тамгалар учурда эске албаганда жүзөгө ашырылат. Үлгү атын экспансия пайдаланса, мүнөзү ``. "Аты же дароо сызык кийинки жылдын башында" номиналдык параметр dotglob белгиленет каралбаса, ачык дал керек. бир жол атын туура келген учурда, номур мүнөзү ар дайым ачык-айкын дал болушу керек. Башка учурларда, ``. '' Мүнөзү атайын мамиле жок. Nocaseglob, nullglob жана dotglob номиналдык жолдору баяндалган НомиНАлдЫК BUILTIN буйруктарына ылайык төмөнкү shopt сүрөттөлүшүн кара.

GLOBIGNORE кабыгы өзгөрмө бир үлгүгө дал билэ аталыштар топтомун чектөөгө пайдаланылышы мүмкүн. GLOBIGNORE коюлса, ошондой эле GLOBIGNORE жылы үлгүлөрүнүн бири дал ар бир келген аянтчанын аты матчтарын тизмесинен алынып салынат. Билэ аттары ``. '' Жана `` .. '' GLOBIGNORE коюлса да, ар дайым эске алынбайт. Бирок, орнотуу GLOBIGNORE dotglob номиналдык жолду, бир да башка билэ аттары менен башталган `` жагымдуу таасир этет. "," Туура келет. А `` менен башталган билэ атын көрмөксөн эски жүрүм-алуу үчүн. '', Кылып `` *. '' GLOBIGNORE жылы үлгүлөрүнүн бири. GLOBIGNORE коюлбай калса dotglob параметр өчүк.

Үлгү Үлүштүк

Төмөндө сүрөттөлгөн атайын үлгү белгилердин башка үлгү-жылы пайда болгон ар бир тамга, өзү туура. NUL мүнөзү үлгү болушу мүмкүн эмес. атайын үлгү каармандар, алар түзмө-түз келген турган болсок, анда келтирилген болушу керек.

атайын үлгү белгилер төмөнкүдөй мааниге ээ:

*

нөл жип, анын ичинде ар бир сап, Матчи.

?

кандайдыр бир белгини Матчи.

[...]

тиркелген белгилердин бирине дал келет. Ташымалдоо менен бөлүнгөн каармандардын бир жуп бир катар сөздөрдү билдирет; азыркы тил менен даярдоону ырааттуулугу жана мүнөзү тобун колдонуп, эске алуу менен ошол эки каармандардын ортосундагы иреттеп ар бир тамга, дал келет. Биринчи тамга төмөнкү болсо, [бир эмес! же ^ андан кийин кандайдыр бир белги туура тиркелген эмес. Белгиленген болсо, катар сөздөр каармандарынын сорттоо тартиби, азыркы тил менен LC_COLLATE номиналдык өзгөрмөнүн наркы менен аныкталат. А - топтому биринчи же акыркы мүнөздөгү катары, анын ичинде менен коштолушу мүмкүн. A] топтому биринчи мүнөздөгү катары, анын ичинде менен коштолушу мүмкүн.

Ичинде [жана], мүнөзү класстар синтаксисин аркылуу көрсөтүлүшү мүмкүн [: класс:] класс POSIX.2 стандартында аныкталган төмөнкү класстардын бири болуп саналат, ал:

alnum Alpha ASCII бош cntrl орундуу диаграммасы төмөн басма punct мейкиндик жогорку сөз xdigit
Бир тамга класс классына тиешелүү ар кандай мүнөзгө дал келет. Сөз тамга класс тамгаларды туура, сандарды жана мүнөзүн _.

[Жана] ичинде бирдей класс синтаксиси [= с =], ошол эле бүтүмүн салмагы бардык белгилерине дал (азыркы тил менен аныкталган) тамга с аркылуу көрсөтүлүшү мүмкүн.

Ичинде [жана], синтаксистик [. белгиси.] даярдоону белгиси белгиси дал келет.

Extglob кабыгы параметр shopt builtin аркылуу иштетилген болсо, бир нече берилген үлгүгө дал операторлор таанылат. | Кийинки сүрөттөлгөндө, үлгү-тизмеси менен бөлүнгөн бир же бир нече үлгүлөрүнүн тизмеси . Курамдуу оюу төмөнкү суб-үлгүлөрүнүн бирин же бир нечесин пайдалануу менен пайда болушу мүмкүн:

? (Үлгүгө тизмеси)

берилген үлгүлөрдү нөлдүк же бир пайда Матчи

* (Үлгүгө тизмеси)

берилген үлгүлөрүнүн нөл же кубулуштар Матчи

+ (Үлгүгө тизмеси)

берилген үлгүлөрүнүн бир же бир нече көрүнүштөрдү Матчи

@ (Үлгүгө тизмеси)

так берилген үлгүлөрүнүн бири Матчи

(Үлгүгө тизмеси)

берилген үлгүлөрүнүн бири башка эч нерсени Матчи

Quote алып салуу

Мурунку аймактарды кийин, каармандардын бардык түшүүсү көрүнүштөрү \ ", ал эми жогоруда аймактарды бири алынып салынат алып келе алган жок" деп.

кайра даректөө

Буйрук аткарылганга чейин, анын кириш жана чыгыш катмары тарабынан өзгөчө белгисин колдонуу багытталышы мүмкүн. Кайра даректөө азыркы номиналдык аткаруу курчап турган чөйрө үчүн ачуу жана жабуу материалдары үчүн гана пайдаланылышы мүмкүн. Төмөнкү даректи операторлору озуп же жөнөкөй буйругу ичинде каалаган жерден пайда же буйругун аткарууга мүмкүн. Багыттоолор алар солдон укук пайда тартипте каралат.

Төмөнкүдөй сүрөттөөгө Эгерде билэ сыпаттаманы саны кереги жок, жана кайра даректөө операторунун биринчи тамга <, даректи стандартты киргизүү (0 билэ сыпаттаманы) жөнүндө сөз болуп жатат. Кайра даректөө оператордун биринчи мүнөз> болсо, даректи стандарттык өндүрүшүнүн (билэ сыпаттаманы 1) билдирет.

төмөнкү баяндалып даректи операторунун төмөнкү сөзү, эгерде башкасы көрсөтүлбөсө, өнүктүрүүгө, Жакыяга экспансия, параметр экспансия, буйрук алмаштыруу, санариптик экспансия, жатка алып, атын өнүктүрүүгө жана сөз жарылышы, кайраттанып дуушар болгон. Ал бир эмес, бир нече сөз менен узарып кетсе, анда Баш ката билдирди.

багыттоолор тартиби маанилүү экенин белгилешет. Мисалы, буйрук

дар> dirlist 2> & 1

буйругу менен, ал эми, билэ dirlist стандарттык өндүрүш менен стандарттык ката да жетектейт

дар 2> & 1> dirlist

стандарттык чыгуу dirlist кайрадан жөнөтө электе эле стандарттуу ката типтүү натыйжасы деп кайталанды, анткени dirlist берүүгө гана стандарттуу өндүрүүнү жетектейт.

Төмөнкү жадыбалда сүрөттөлгөн, ошондой эле, багыттамалар колдонулат кийин Баш атайын бир нече тутмайды кылат:

/ иштеп чыгуучунун / FD / FD

FD Жарактуу бүтүн сан болсо, билэ сыпаттаманы FD копияланышы жатат.

/ ишт.ч. / stdin

File сыпаттаманы 0 копияланышы жатат.

/ ишт.ч. / stdout

File сыпаттаманы 1 копияланышы жатат.

/ ишт.ч. / stderr

File сыпаттаманы 2 копияланышы жатат.

/ иштеп чыгуучунун / TCP / алуучу / порту

Кабыл алуучу Жарактуу хост же Интернет-дарек болсо, жана порт бүтүн порт саны же кызмат аталышы, Баш тиешелүү таканычка бир TCP байланышты ачууга аракет кылган.

/ иштеп чыгуучунун / UDP / алуучу / порту

Кабыл алуучу Жарактуу хост же Интернет-дарек болсо, жана порт бүтүн порт саны же кызмат аталышы, Баш тиешелүү таканычка бир UDP байланышты ачууга аракет кылган.

ачуу же билэни түзүү үчүн бир ката даректи албай келет.

Redirecting Input

Н белгиленген эмес, эгерде киргизүү билэ сыпаттаманы N боюнча окуу ачылат сөздүн өнүктүрүүнү билэни ысымы натыйжалары же стандарттуу киргизүү (0 билэ сыпаттаманы) себеп кайра багыттоо.

киргизүү кайра жөнөтүү үчүн жалпы формат болуп саналат:

[Н] <сөз

Redirecting Output

Н белгиленген эмес, эгерде өндүрүшүнүн билэ сыпаттаманы н жазуу үчүн ачылат сөздүн өнүктүрүүнү анын Имя натыйжалары же стандарттуу өндүрүшүнүн (билэ сыпаттаманы 1) себеп кайра багыттоо. билэ жок болсо, аны түзүү; Эгер бар болсо, ал нөлгө барабар өлчөмүнө түзүлсө.

чыгарылышты кайра жөнөтүү үчүн жалпы формат болуп саналат:

[Н]> сөз

Кайра даректөө оператору> болсо, жана белгиленген builtin үчүн noclobber параметр иштетилсе калды, кайра даректөө сөздүн өнүктүрүүнү билэ ысымы натыйжалары бар экенин жана дайыма билэ болсо сөзсүз болот. Кайра даректөө оператору болуп саналат, анда> | Же кайра даректөө оператору> жана белгиленген builtin буйругуна noclobber параметр иштетилсе эмес, кайра даректөө сөзү боюнча аталган билэ бар болсо да аракет кылат.

Толуктоо Redirected Output

Н көрсөтүлгөн эмес болсо, бул мода өндүрүштүн кайра даректөө билэ сыпаттаманы боюнча толуктоо үчүн ачылат сөздүн өнүктүрүүнү натыйжалары ысмы билэни н, же стандарттуу өндүрүшүнүн (билэ сыпаттаманы 1) себеп болот. билэ жок болсо түзүлгөн.

көлөмүн толуктоо үчүн жалпы формат болуп саналат:

[Н] >> сөз

Redirecting Standard Output жана стандарт ката

Баш-стандартты, чыгаруу (билэ сыпаттаманы 1) да мүмкүнчүлүк берет, ошондой эле стандарттык ката чыгаруу (2 билэ сыпаттаманы) ысымы ушул куруу менен сөздүн экспансиясы делосуна багытталышы керек.

стандарттык өндүрүүнү жана стандарттык ката кайра эки түрү бар:

&> Сөз

жана

> & Сөз

эки түрлөрүн, биринчи артыкчылык берилет. Бул семантикалык барабар

> Сөзү 2> & 1

Бул документтер

Багытталгандыгына бул түрү бир гана сөз камтыган бир катар чейин учурдагы булактан киргизүү окуп кебетеси (эч кандай орунду ээлеп бланк менен) үйрөнүп, көрүнүп турат. сызыктардын баары ошол убакка чейин окуп, анан бир буйругу боюнча стандарттык киргизүү катары колдонулат.

бул жерде документтердин формат болуп саналат:

<< [-] деген сөз бул жерде Документти бөлгүч

Эч бир параметр кеңейүү, буйрук менен алмаштырып, санариптик кеңейүү, же атын кеңейүү сөзү боюнча жүзөгө ашырылат. Сөзү менен эч кандай белгилер келтирилген болсо, бөлгүч сөзүнө жатка алып салуунун натыйжасы болуп саналат, ал эми бул жерде документте саптары көбөйгөн жок. Сөз түшүүсү болсо, бул жерде документтин бардык багыттар өнүктүрүүгө, буйрук алмаштырууну, ошондой эле санариптик өнүктүрүүгө кёрсёткъчънё дуушар болушат. Акыркы учурда, мүнөзү ырааттуулугун \ эске алынбайт, ал эми \ \, $ жана `белгилерди үзүндү үчүн колдонулушу керек.

Эгер кайра даректөө оператору << - бул, бүт алдынкы табулатура белгиден киргизүү линияларын жана сап бар Бөлүүчү тартып айрылышат. Бул жерде документтерди номиналдык жазууларында ичинде табигый түрдө калтырылып мүмкүндүк берет.

Бул жерде Strings

бул жерде документтердин Variant, формат болуп саналат:

<<< сөз

Сөзү жайылып, анын стандарттык киргизүү жөнүндө буйрукка берилет.

File сүрөттөмөлөр кайталаган

кайра даректөө оператору

[Н] <& сөз

киргизүү билэ сүрөттөмөлөр жасоого колдонулат. Сөз, бир же андан көп белги үчүн узарып кетсе, анда N тарабынан белгиленет билэ сыпаттаманы деп билэ баалоо көчүрмөсү болуп турат. Сөз менен сан киргизүү үчүн ачык сөп сүрөттөгүч көрсөтүлгөн эмес болсо, анда бир даректи ката болот. Сөз деп бааланса, - билэ сыпаттаманы н жабылган. Н көрсөтүлгөн эмес болсо, стандарттуу киргизүү (0 билэ сыпаттаманы) колдонулат.

оператору

[Н]> & сөз

чыгаруу билэ сүрөттөмөлөр кайталаган окшош колдонулат. Н көрсөтүлгөн эмес болсо, стандарттуу Output (билэ сыпаттаманы 1) колдонулат. Сөз менен сан өндүрүшүнүн ачык сөп сүрөттөгүч көрсөтүлгөн эмес болсо, анда бир даректи ката болот. Н кереги жок болсо, анда атайын учурда, ошондой эле сөз бир же андан көп белги үчүн кеңейтүү эмес, стандарттык чыгаруу жана стандарттык ката мурда айтылгандай жиберилет.

File сүрөттөмөлөр жылдырылууда

кайра даректөө оператору

[Н] <& орундуу -

билэ сыпаттаманы орундуу сыпаттаманы Ж түрткү берет, же стандарттуу киргизүү (0 билэ сыпаттаманы) н көрсөтүлгөн жок болсо. сандуу N көчүрүлө кийин жабык болот.

Ошо сыяктуу эле, кайра даректөө оператору

[Н]> & орундуу -

билэ сыпаттаманы орундуу сыпаттаманы Ж түрткү берет, же стандарттуу чыгарылышты (билэ сыпаттаманы 1) N көрсөтүлгөн жок болсо.

Окууга жана жазууга үчүн File сүрөттөмөлөр ачуу

кайра даректөө оператору

[Н] <> сөз

н жок болсо да, окуу жана билэ сыпаттаманы н жазуу, же билэ баалоо 0 боюнча ачылат сөздүн ысымы экспансиясы билэни себеп болот. билэ жок болсо, ал түзүлгөн.

өкшош үлгүлөр

Aliases ал жөнөкөй эле буйрук биринчи сөзү катары пайдаланылган учурда бир сап сөз алмаштырылышы мүмкүнчүлүк берет. Номиналдык өлкө жана unalias builtin буйрук менен белгиленген жана коюлбай мүмкүн аттары тизмесин алат (НомиНАлдЫК BUILTIN төмөндө БУЙРУГУБУЗГА карагыла). ар бир буйругу биринчи сөзү, түшүүсү болсо, анда ал бир лакап-жетпесин билиш үчүн, текшерилет. Эгер ошондой болсо, ал сөз жашырын тексти менен алмаштырылат. Көрсөткүчтүн аталышы жана алмаштыруу текст негиздүү номиналдык киргизүү жогоруда саналып өткөн metacharacters, анын ичинде өлкө аты кошпогондо камтышы мүмкүн = жок болуп калышы мүмкүн. алмаштыруу күндүн биринчи сөзү аттары сыналган, бирок ылдам жайылганы жашырын окшош бир сөз экинчи жолу күч эмес. Бул, мисалы, бир, өлкө LS -F LS мүмкүн дегенди билдирет, ал эми Баш recursively алмаштыруу текстти кеңейтүү алууга аракет жасабайт. Өлкө наркы акыркы мүнөзү лакап төмөнкү бош, анда кийинки буйрук сөз болсо да өлкө экспансия боюнча текшерилет.

Aliases түзүлгөн жана өлкө буйругу менен келтирилген, ал эми unalias буйругу менен алынып салынды.

алмаштыруу текстине далилдерди пайдалануу үчүн эч кандай механизми жок. Аргументтер керек болсо, бир орбитанын милдети (төмөндөгү иш-милдеттерди көрө) колдонулушу керек.

Aliases номиналдык expand_aliases параметр shopt менен белгиленет бомбалашын каралбаса, өз ара эмес (НомиНАлдЫК BUILTIN төмөн БУЙРУГУБУЗГА караштуу shopt чагылдырылышын карагыла) качан баштаган эмес.

аттары аныктоо жана пайдалануу боюнча эрежелерди бир аз түшүнүксүз болуп саналат. Баш дайыма сапта буйрук болбосун аткаруудан мурун жок дегенде бир киргизүү толугу менен сапты окуп берет. Aliases бул аткарылган эмес, буйрук, окуп жатканда, өсүп жатат. Ошондуктан, дагы бир буйругу менен бир сапта көрсөтүлгөн өлкө сапаттуу киргизилгенден кийинки сап чейин күчүнө кирбейт. Ошол саптагы өлкө аныктамасы төмөнкү буйруктары жаңы ат менен таасирин тийгизген эмес. милдеттери аткарылат Бул жүрүм-туруму да маселе болуп саналат. бир аныктамасында өзү татаал буйругу анткени Aliases милдети, аткарылган учурда эмес, аныктамасында, окуп жатканда, өсүп жатат. Натыйжада, бир иш менен аныкталат Н ошол милдети аткарылган кийин чейин жеткиликтүү эмес. Коопсуз болушу үчүн, ар дайым өзүнчө сапта өлкө аныктамаларды салып, татаал буйруктары лакап колдонууга болбойт.

дээрлик ар бир максатта, Н номиналдык милдеттери менен жоюлуп жатат.

FUNCTIONS

НомиНАлдЫК Грамматика боюнча жогоруда айтылгандай аныкталган номиналдык милдети, кийин аткаруу үчүн бир катар буйруктарды сактайт. номиналдык милдетинин аты жөнөкөй буйрук аты катары колдонулат, ал милдети аты менен байланышкан командалардын тизмеси аткарылат. Functions учурдагы кыртыш шартында жүзөгө ашырылат; бирок түшүбүздү жоруп берчү эч жаңы жараяны түзүлөт (номиналдык скрипт аткарууга карама-каршы). милдети аткарылган болсо, иштеши үчүн аргументтер аны аткаруу учурунда турумдук көрсөткүчтөр болуп. Атайын параметр # өзгөрүүлөрдү чагылдырууга турат. Турумдук параметр 0 өзгөртүлбөйт. Милдети аткаруучу жатканда FUNCNAME өзгөрмө милдетинин атынан коюлган. Номиналдык аткаруу курчап турган бардык башка аспектилери ЖӨНДӨӨ тузак деген башка бир иш жана анын дубасын кабыл ортосундагы окшош (НомиНАлдЫК BUILTIN төмөн БУЙРУГУБУЗГА астында builtin капкандын көрө) милдети изи касиетти берилбесе, тукум кууп өткөн эмес, ( төмөндө builtin жарыялоо) жөнүндө көрө.

Иштеши үчүн жергиликтүү Variables жергиликтүү builtin буйругу менен деп жарыяланышы да мүмкүн. Адатта, өзгөрмөлөр жана алардын мааниси кызматтын жана анын дубасын кабыл ортосунда бөлүшүлгөн.

Builtin буйрук кайра бир иш аткарылган болсо, милдети бүтөт жана аткаруу милдети чалуудан кийин, кийинки буйругу менен кайра чыгат. Иш бүткөндөн кийин турумдук параметрлерин жана атайын параметр # маанилери, алардын милдети, анын аткарылышына чейин болгон баалуулуктарды калыбына келет.

Function аттары жана аныктамалар жарыялоого -f тандоосу менен көрсөтүлгөн же builtin буйрук киргенин мүмкүн. -F параметр жарыялоо же киргенин аласыз аттарын гана тизмесин сунуш кылат. Functions subshells жазуусу аларды экспорттук builtin үчүн -f тандоосу менен аныкталат деп, ошондуктан ташылып кетиши мүмкүн.

Functions Recursive болушу мүмкүн. Чектөө жок Рекурсия чалуулардын саны жүктөлгөн.

ARITHMETIC БААЛОО

Орбитанын белгилүү бир шарттарда (Let builtin буйругун жана Arithmetic Өсүшкө карагыла) ылайык, баа берүү үчүн эсеп сөздөр берет. Баалоо 0 тарабынан бөлүнүшү ката катары камалып жана белгиленгенден да, ашып-ташып үчүн эч кандай чек менен белгиленген-туурасы бүтүн жүргүзүлөт. операторлор жана алардын артыкчылык жана associativity C тилинде эле. операторлордун төмөнкү тизме бирдей артыкчылык операторлорунун денгээлде салып топтоштурулат. жогорку артыкчылыкка азайтуу максатында келтирилген.

ID ++ ID -

өзгөрмө кийинки өсүш жана пост-декремент

++ ID - ID

өзгөрмө чейинки өсүш жана алдын-ала декремент

- +

иштебесе кемитүү жана кошуу

! ~

логикалык жана бинардык тескериси

**

Даражага

* /%

көбөйтүү, бөлүү, калган

+ -

Андан тышкары, кемитүү

<< >>

сол жана оң жылыштар бинардык

<=> = <>

окшоштук

== =

теңдик жана саа

&

бинардык ЖАНА

^

бинардык өзгөчө ЖЕ

|

бинардык OR

&&

логикалык жана

||

логикалык ЖЕ

Expr? Expr: Expr

шарттуу баалоо

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

дайындоо

expr1, expr2

үтүр

Shell өзгөрмөлөр operands катары гана жол берилет; параметри кеңейүү сөздөр бааланат чейин жүзөгө ашырылат. бир сөз ичинде номиналдык өзгөрмөлөр да параметр кеңейүү синтаксисин колдонбостон атынан шилтемелер болушу мүмкүн. Бул маалымдама жатканда өзгөрмөнүн нарк эсептөө билдирүү катары бааланат. А номиналдык өзгөрмө анын бүтүн атрибуту жок, керек мааниде колдонула турган күйгүзүлдү.

алдынкы 0 менен турактуу Octal саны катары жоромолдонууда. Бир 0XБ Л же 0XБ Л алтылык билдирет. Болбосо, сандар түрүн [базалык #] алып н базалык аритметикасы базасын атынан 2 жана 64 ортосунда ондук сан жана н бул базада бир сан болуп саналат. Базалык # кереги жок болсо, анда база 10 колдонулат. көбүрөөк 9 караганда сан кичине тамга, тамга, @ кимдерди билдирет жана _, ошол үчүн. Базасы же 36 барабар болсо, анда кичине жана баш тамгалар 10 жана 35 Сандарды өкүлү interchangably пайдаланылышы мүмкүн.

Байланыш операторлоруна болуу кезегинин тартиби боюнча бааланат. кашаанын ичинде Sub-сөз айкаштары биринчи бааланат жана жогоруда артыкчылык эрежелерин жокко чыгара алат.

ШАРТТУУ ТУЮНТМАЛАР

Шарттуу сөздөр билэ сыпаттарын сыноо жана сап жана санариптик салыштырууларды жасоо үчүн [[татаал буйругу менен сыноо жана [builtin буйруктарына тарабынан пайдаланылат. Expressions төмөнкү иштебесе же экилик негизги тъсъ пайда болот. Негизги тъсъ бирине ар кандай билэ аргументи түрү болуп саналат / иштеп чыгуучунун / FD / н болсо, анда сыпаттаманы н текшерилет берүүгө. Эгерде негизги тъсъ бирине билэ аргумент / бири болуп саналат иштеп чыгуучунун / stdin, / иштеп чыгуучунун / stdout, же / иштеп чыгуучунун / stderr, билэ сыпаттаманы 0, 1, же 2, тиешелүүлүгүнө жараша, текшерилет.

-a билэ

Билэ бар болсо чыныгы.

-b билэ

Билэ бар болсо, бир бөлүгү атайын сөп чыныгы.

-C билэ

Билэ бар болсо, мүнөзү өзгөчө сөп чыныгы.

-D билэ

Эгерде билэ баар жана каталог чыныгы.

-E билэ

Билэ бар болсо чыныгы.

-f билэ

Эгерде билэ бар жана үзгүлтүксүз сөп чыныгы.

-G билэ

Билэ баар жана кой-топ-ID болсо, анда чыныгы.

-h билэ

Эгерде билэ баар жана символдук шилтеме чыныгы.

-k билэ

Билэ бар жана анын `` жабышчаак '' бит коюлса, чыныгы.

-p билэ

Билэ баар жана аталган чоор (FIFO) болсо, анда чыныгы.

-r билэ

Эгерде билэ баар жана окула турган чыныгы.

-s билэ

Эгерде билэ баар жана нөлдөн жогору ёлчеми чыныгы.

-t FD

Эгерде билэ сыпаттаманы FD чыныгы ачык жана терминалына билдирет.

-u билэ

Эгерде билэ бар жана анын коюлган-колдонуучу-ID бит белгиленет чыныгы.

-w билэ

Эгерде билэ баар жана жазылбайт чыныгы.

-x билэ

Билэ баар жана Аткаруучу болсо чыныгы.

-O билэ

Билэ баар жана натыйжалуу Колдонуучу ID таандык болсо, чыныгы.

-G билэ

Билэ баар жана натыйжалуу топ ID таандык болсо, чыныгы.

-L билэ

Эгерде билэ баар жана символдук шилтеме чыныгы.

-S билэ

Билэ баар жана оюгу бар болсо, анда чыныгы.

-N билэ

Эгерде билэ бар жана акыркы окугандыгы бери өзгөртүлсө, чыныгы.

file1 - NT file2

File1 file2 караганда (өзгөртүү датасы боюнча) жанык, же file1 бар жана file2 жок болсо, анда чыныгы.

file1 - ачуу file2

Эгерде file1 file2 улуу, же file2 бар жана file1 эмес, болсо чыныгы.

file1 -ef file2

Ошол эле аппарат жана inode'на жетүү номерлерине file1 жана сөз file2 болсо чыныгы.

епо optname

Номиналдык параметр, эгерде чыныгы optname иштетилген. Төмөндө builtin топтому епо тандоо сүрөттөө боюнча тандоо тизмесин карагыла.

-z сап

Эгерде сап узундугу нөл чыныгы.

сап

аркан

Сап узундугу эмес нөлгө барабар болсо, чыныгы.

string1 == string2

саптар бирдей болсо, чыныгы. = Катуу POSIX ылайык == ордуна колдонулушу мүмкүн.

string1! = string2

саптар бирдей эмес, эгер чындык.

string1

Учурдагы тил lexicographically string2 алдында болсо string1 адамдардын чыныгы.

string1> string2

Учурдагы тил lexicographically string2 кийин string1 адамдардын чыныгы.

arg1 OP arg2

ОП -eq бири болуп саналат, -ne, -lt, -le, -gt, же -ge. Бул эсеп бинардык операторлор arg1 тиешелүүлүгүнө жараша, arg2 эмес, же барабар көп аз, аз, барабар эмес, же андан ашык же ага барабар, барабар болсо, анда чыныгы кайрылып. Arg1 жана arg2 оң же терс бүтүн болушу мүмкүн.

Жөнөкөй буйрукка? Ш?

жөнөкөй эле буйрук өлүм жазасына болгондо, орбита сол тараптан, төмөнкү Голдман, тапшырмаларды жана багыттоолор жүзөгө ашырат.

1.

талдоочу өзгөрүлмө тапшырма катары белгиленген сөздөрү (буйрук аты мурунку) жана багыттоолор кийинчерээк кайра иштетүү үчүн сакталат.

2.

өзгөрүлмө тапшырмалар же багыттоолор жок сөздөр жайылып жатат. ар кандай сөздөр экспансия кийин ашып калса, биринчи сөз буйругу аты катары алынат, калган сөздөр жүйөлөр келтирилет.

3.

Багыттоолор даректи ылайык жогоруда айтылгандай жүзөгө ашырылат.

4.

Ар бир өзгөрмө Кызматтан = кийин текст Жакыяга өнүктүрүүгө, параметр экспансия, буйрук алмаштыруу, өзгөрүүчү дайындалган чейин санариптик өнүктүрүүгө жана жатка алып салууну дуушар болот.

эч кандай буйрук аты жыйынтыгы болсо, өзгөрүлмө тапшырмалардын учурдагы номиналдык чөйрөгө таасир этет. Болбосо, өзгөрмөлөр аткарылган буйругу менен айлана-чөйрөгө кошулуп жана учурдагы номиналдык чөйрөгө таасир жок. тапшырмалардын кайсы бир кирүүнү өзгөрмөгө көрсөткүч дайындоо үчүн аракет кылса, бир ката бар болгон кезде, ошондой эле азык-нөл статусу менен буйрук чыга.

эч кандай буйрук аты жыйынтык болсо, багыттамалар жүзөгө ашырылат, ал эми азыркы учурда номиналдык чөйрөгө таасир бербейт. А кайра даректөө ката эмес нөл статусу менен чыгууга буйрук кылат.

экспансия кийин калган буйрук аты бар болсо, төмөндө айтылгандай аткаруу түшкөн. Болбосо, буйрук чыга турган. аймактарды бири буйрук алмаштыруу камтылган болсо, буйрук бүтүрүү статусу жасаган акыркы команда алмаштыруу бүтүрүү статусу болуп саналат. эч кандай буйрук ордун алмаштыруу бар болсо да, нөл деген статусу бар буйрук чыга.

БУЙРУК АТКАРУУ

буйрук сөз бөлүнүп кийин, ал жөнөкөй эле буйрук жана далилдер боюнча кошумча тизмесине жыйынтык болсо, төмөнкү иш-чаралар кабыл алынат.

команда аты жок көрүнөт камтыса, номиналдык аракеттери аны жайгашкан. Деген аты менен бир номиналдык милдетин бар болсо, ал милдети саналып, жогоруда айтылгандай, дуба кылат. Эгер аты-жөнү номиналдык builtins тизмесинде ал үчүн бир кызматты, номиналдык издөө дал келбейт. Эгер дал келсе, ошол builtin талап кылынса.

Аты номиналдык милдети да builtin да болсо, анда эч кандай көрүнөт бар, Баш аты менен Аткаруучу билэни камтыган каталогуна жолу ар бир элементин изилдейт. Баш чыгара дептердин толук Жолсуз (НомиНАлдЫК BUILTIN төмөн БУЙРУГУБУЗГА караштуу таштанды карагыла) эстеп таштанды үстөл колдонот. Команда таштанды столдун табылган жок болсо жолунда каталогдорго толук издөө гана жүзөгө ашырылат. издөө ийгиликсиз болсо, номиналдык ката билдирүү басып жана 127 бир чыгуу статусун кайтарат.

издөө ийгиликтүү болсо, буйрук аталышы бир же бир нече көрүнөт камтыйт же, кабыгы өзүнчө аткаруу чөйрөдө аттуу программасын ишке ашырат. эгерде кандайдыр бир аргумент 0 атын берип, буйрук калган далилдер, бул далилдерди коюлган коюлду.

Бул аткаруу билэ Аткаруучу түрдө эмес, билэ каталог жок, себеби болсо, анда ал бир номиналдык скрипт, номиналдык буйруктарын камтыган билэни деп болжолдонуп жатат. Бир subshell, аны ишке ашыруу үчүн жаратты жатат. Бул subshell таасир ата-энеси менен эсте буйруктардын жайгашкан (НомиНАлдЫК BUILTIN буйруктарына ылайык, төмөндөгү таштанды карагыла) баланын сакталып жатканын башка бир жаңы кабыгы, арибин чечүүгө негиз салгандай эле болот да, өзү reinitializes.

Эгер программа # баштап сөп! Биринчи сапта калган программасына тилмечти аныктайт. кабыгы бул Аткаруучу формат өздөрүн туура эмес, системалар менен белгилүү тилмечти ашырат. болсо, тилмечке, талашып, буйрук далилдер менен программанын аты кийин программанын биринчи сапта тилмеч аты төмөнкүдөй бир кошумча аргумент катары турат.

БУЙРУК АТКАРУУ АЙЛАНА-ЧӨЙРӨНҮ КОРГОО

Номиналдык төмөнкүлөрдө турат: бир аткаруу чөйрөсүн бар:

*

Шмидт builtin берилген багыттоолор менен барак болуп, зикири учурунда орбита менен тукум кууп өткөн ачык дептер

*

Учурдагы CD, тушуп калат, же popd белгиленген каталог иштеген, же дубасын боюнча орбита менен тукум кууп өткөн

*

билэ жаратуу режими маска катары umask тарабынан белгиленген же Shell дин ата-эненин тукум кууп өткөн

*

тузакка тарабынан белгиленген учурдагы тузак

*

чөйрөдө Shell дин Ата өзгөрүлмө берүү же топтому же тукум тарабынан белгиленет номиналдык параметрлери

*

номиналдык милдеттерин аткаруу же айлана чөйрөдө Shell дин ата-эненин тукум ичинде аныкталат

*

зикири учурунда (демейки же командалык сап далилдер менен да) же топтому тарабынан иштетилген параметрлери

*

параметрлери shopt тарабынан иштетилген

*

ат менен аныкталат номиналдык Н

*

ар кандай иш-лерин, анын ичинде негизги жумуш да, $$ наркы, ошондой эле $ PPID наркы

бир builtin же номиналдык милдеттерин башка жөнөкөй эле буйрук өлүм жазасына тартылышы керек болсо, ал төмөнкүлөрдө турат өзүнчө аткаруу чөйрөдө дуба кылынат. Эгерде башкасы айтылбаса, баалуулуктар катмарындагы мураска калган.

*

Shell ачык делолору, плюс буйругу багыттоолор тарабынан көрсөтүлгөн ар кандай өзгөртүүлөр жана толуктоолор

*

Учурдагы иштеген каталог

*

билэ жаратуу режими маска

*

номиналдык өзгөрмөлөр экспорту боюнча, буйрук боюнча экспорттолуучу өзгөрмөлүү менен бирге айлана-жылы кабыл алынган

*

катмары тарабынан кармалган тузак Shell дин ата-эненин тукум кууп өткөн баалуулуктарга абалга жана орбита менен четке тузак этибарга алынбайт

Бул өзүнчө чөйрөдө дуба Буйрук Shell дин аткаруу чөйрөгө таасир бере албайт.

Command алмаштыруу жана асинхрондук буйруктар орбита менен кармалды тузак номиналдык дубасы анын ата-энесинин тукум кууп өткөн баалуулуктар кайтарылат деп кошпогондо, номиналдык чөйрөнү дубликаты бир subshell чөйрөдө дуба кылынат. өтө турган газ куурунун бир бөлүгү катары дуба жатышат Builtin буйруктары, ошондой эле айлана-чөйрөгө subshell менен аткарылат. subshell чөйрөгө жасалган өзгөртүүлөр Shell дин аткаруу чөйрөгө таасир бере албайт.

Бир буйругу & жана иш башкаруу активдүү эмес, андан кийин болсо, анда эмне үчүн андай буйрук демейки стандартты киргизүү бош билэ / иштеп чыгуучунун / нөл болуп саналат. Болбосо, дуба буйрук багыттоолор менен барак катары чакырып контурун билэ сүрөттөмөлөр боюнча өтөт.

Кара

Баш Ссылка Manual, Брайан Fox жана Чет Ramey

GNU Readline Китепкана Брайан Fox жана Чет Ramey

GNU Тарых Китепкана Брайан Fox жана Чет Ramey

Portable Operating System Interface (POSIX) 2-бөлүк: Shell жана коммуналдык тейлөө, IEEE

Sh (1), КШ (1), csh (1)

Emacs (1), VI (1)

Readline (3)