Linux командалык билүү - жышаан

ысым

жышаан - үлгү иликтей жана кайра иштетүү тили

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

жышаан [POSIX же GNU стили ыкмаларды] -f программа-билэ [-] билэ ...
жышаан [стили параметрлери POSIX же GNU] [-] программа-тексттик ...

pgawk [POSIX же GNU стили параметрлери] -f программа-билэ [-] билэ ...
pgawk [POSIX же GNU стили параметрлери] [-] программа текст билэ ...

баяндоо

Жышаан болот GNU долбоору сандыктын программалоо тилинин ишке ашыруу. Бул POSIX 1003,2 Command Тили жана коммуналдык Standard тилди аныктамага ылайык келет. Өз кезегинде бул версия сандыктын программалоо тилинде сыпаттамага негизделет, AHO, Kernighan жана Weinberger менен, UNIX системасы V-жылдын 4 айы боюнча сандыктын ашык кошумча өзгөчөлүктөрү менен бирге. Жышаан да акыркы Белл лабораториялары сандыктын узартуу, жана GNU-айкын бутактары бир катар камсыз кылат.

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

Команда сабы өзү үчүн жышаан жолдордон турат, шыргыйларды сандыктын эки программа текст (-f же --file жолдору аркылуу берилген эмес болсо), жана баалуулуктары ARGC жана ARGV алдын-ала аныкталган сандыктын өзгөрүүлөр боюнча жеткиликтүү болушу керек.

Option жазуусу

Жышаан параметрлери салттуу POSIX бир кат параметрлери, жана GNU стили көп мүмкүнчүлүктөр болушу мүмкүн. POSIX тандоолор бир башталат `` - '', көп параметрлери `` менен башталат, ал эми - ''. Узак параметрлери да GNU-өзгөчөлүктөрү жана POSIX милдетине өзгөчөлүктөр берилет.

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

Жолдор

Жышаан алиппе төмөнкү ыкмаларды, кабыл алат.

-F Ядронун

--field-бөлгүч ТЭН киргизүү талаасы бөлүштүрүү үчүн колдонуу FS (ТЭН Алдын өзгөрмөнүн балл).

-v VAR = д

--assign VAR = д программасын аткаруу башталганга чейин өзгөрмө курстар наркы д дайындоо. Мындай өзгөрмөлүү баалуулуктар бир сандыктын программасынын блок БАШТАЛАТ жалпыга жеткиликтүү болуп саналат.

-f программа-билэ

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

-mf NNN

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

-W compat

-W салттуу

--compat

шайкештикти режиминде --traditional Run. Шайкештикти режимде, ишенбегендер үчүн жышаан айырмасыз чыкпасын UNIX шыргыйларды сандыктын эки; GNU конкреттүү бутактары бири да таанылат. --traditional колдонуу тандоосу башка түрлөрүнө караганда артыкчылык берилет. Көбүрөөк маалымат алуу үчүн, төмөндө, GNU Extensions кара.

-W copyleft

-W укук

--copyleft

ийгиликтүү стандарттык өндүрүү жана чыгуу жөнүндө GNU укук маалымат билдирүүсүндө кыска нускасын чыгаруу --copyright.

-W төгүндүлөрдүн-өзгөрмөлөр [= билэ]

--dump-өзгөрмөлөр [= билэ] глобалдуу өзгөрмөлөр, алардын түрлөрү жана берүүгө акыркы баалуулуктар сорттолгон тизмесин басып чыгаруу. Эч кандай билэ каралган болсо, жышаан учурдагы каталогдо awkvars.out деген билэни колдонот.

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

-W жардам

-W колдонуу

--help

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

-W бор [= өлүмгө]

--lint [= өлүмгө] шектүү колдонууга otherAWK эмес көчмө бар мдъг тууралуу эскертүү берүү. Каргашалуу бир кошумча аргумент менен, бор эскертүүлөр өлүмгө каталар болот. Бул радикалдуу болушу мүмкүн, бирок аны колдонуу, албетте, таза сандыктын программаларды иштеп чыгууну түрткү берет.

-W түксүз жашта

--lint жаштагы сандыктын Unix түп нускасына көчмө эмес, мдъг тууралуу эскертүү берүү.

-W поколения-по

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

-W эмес ондук-маалымат

--non-ондук-маалыматтарды киргизүү маалыматтарды Octal жана он алтылык баалуулуктарды таануу. Абдан этияттык менен бул параметрди колдонуу!

-W POSIX

--posix Бул төмөнкү кошумча чектөөлөр менен шайкештик режимде иштей баштайт:

*

\ х качып тизмектеринин таанылган эмес.

*

FS бир мейкиндикке коюлган талаа СЕПАРАТОРЫ катары гана мейкиндик жана табулатура акт, NEWLINE жок.

*

Сиз кийинки саптарды мындан ары жок болот? жана:.

*

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

*

Операторлор ** менен ** = ^ менен ^ = ордуна колдонуу мүмкүн эмес.

*

Fflush () милдети жеткиликтүү эмес.

-W ге [= prof_file]

--profile [= prof_file] prof_file маалыматтарды маалыматтардын жөнөтүү. Демейки awkprof.out болуп саналат. Жышаан менен чуркап келгенде, ге эле программасынын `` сулуу басма '' чыгаруу болуп саналат. Pgawk менен чуркап келгенде, кароо, ар бир колдонуучу аныкталган иш үчүн сол маржа жана милдети чалуу эсептөөлөрдө программанын ар бир арызды аткаруу эсептөөнү камтыйт.

-W кайра-аралыгы

--re-аралыгы дайыма сөз менен аралыгы туюнтмаларды пайдаланууну иштетүү туура келген (төмөндө, Regular Expressions карагыла). Тынып-сөздөр шыргыйларды сандыктын эки тилде салттуу эмес. POSIX-стандартты, шыргыйларды сандыктын эки кылып, бири-бири менен шайкеш egrep, аларды кошумчалады. Бирок, алар эски сандыктын программаларды талкалайм, алар бул тандоосу менен өтүнүчү боюнча, же --posix көрсөтүлгөн болсо, анда аларды камсыз гана жышаан мүмкүн.

-W булагы программасы текст

сандыктын программанын булак коду катары --source программа-текст колдонуу программасы текст. Бул параметр китепкана бөлүмүн ачуу иш-милдеттерин (-f аркылуу колдонулган жана --file жолдору) жана жеңил intermixing берет буйрук сабына булак коду менен. Бул, биринчи кезекте, номиналдык жазууларында колдонулган ири сандыктын программалары орто арналган.

-W версия

--version Басып чыгаруу стандарттык жыйынтыктарына жышаан бул өзгөчө нускасы үчүн маалымат. Бул негизинен системага жышаан азыркы нускасы Free Software Foundation тараткан кандай карата күнгө чейин болсо, анда билип үчүн пайдалуу болот. мүчүлүштүктөр тууралуу отчет берип жатканда да пайдалуу. (GNU стандарттар Coding талабы боюнча, бул ыкмаларды тез арада, ийгиликтүү чыгуусуна алып келет.)

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

шайкештикти режимде, башка параметрлери жараксыз деп белгиленген, бирок, эгерде этибарга алынбайт. Нормалдуу иштешине, ошондой көп программа текст берилген жатат деп, белгисиз параметрлери кайра иштетүү үчүн ARGV тизилип, шыргыйларды сандыктын эки программа боюнча кабыл алынат. Бул `` # аркылуу сандыктын программаларын иштеп үчүн айрыкча пайдалуу! "," Аткаруучу котормочу механизми.

Сандыктын ПРОГРАММАСЫ АТКАРУУ

An сандыктын программасы үлгү-аракет отчеттору жана алар накты аныктамалар бир катарда турат.

узор {аракет отчеттуулук}

милдети аталышы (параметр тизме) {} отчеттуулук

Жышаан биринчи программа-билэ (лар) көрсөтүлгөн болсо, талаш---source, же буйрук сабында биринчи эмес параметр аргументтерден программасы булагы окуйт. -f жана --source параметрлери командалык саптан бир нече жолу пайдаланылышы мүмкүн. Жышаан болсо, бардык программалык-билэ с жана буйрук сап булагы тексттер менен бирге көпчүлүк кылгандай Программа текстти окуп берет. Бул алар үчүн ар бир жаңы сандыктын программага кошуу көрбөй, шыргыйларды сандыктын эки милдеттерин китепканалар куруу үчүн пайдалуу болот. Ошондой эле, буйрук сап программалары менен китепкана бөлүмүн ачуу милдетин аралаштыруу мүмкүнчүлүгүн камсыз кылат.

Чөйрө өзгөрүлмө AWKPATH -f тандоосу менен аталган булак материалдары таап жатканда колдонула турган издөө жолун белгилейт. Бул өзгөрмө жок болсо, демейки жолу болуп саналат ". / Окудум / Жергиликтүү / үлүшү / сандыктын". (Иш жүзүндөгү каталог жышаан курулган кандай жараша өзгөрүп турушу ыктымал жана орнотулган.) -f тандоосу берилген билэ атын `` / '' мүнөзү бар болсо, анда эч кандай жол издөө жүргүзүлөт.

Жышаан төмөндөгүдөй тартипте сандыктын программаларды ишке ашырат. Биринчиден, -v тандоосу аркылуу көрсөтүлгөн бардык өзгөрүлмө тапшырмалардын жүзөгө ашырылат. Кийинки, жышаан ички түргө программасын түзөт. Андан кийин, жышаан блок БАШТАЛАТ (с) (эгерде андайлар бар болсо) кодун аткарат, анан ARGV тизилип деген ар бир сааты окууга киришет. Командалык саптан деген Аракети жок болсо, жышаан-стандартты киргизүү окуйт.

Командалык саптан бир аты түрү Var болсо = д бул өзгөрмө тапшырма катары каралган. Өзгөрүлмө VAR балл д берилет. (Бул кандайдыр бир бөлүгү (лор) БАШТАЛЫШЫ кийин эмне Нускасы болуп калды.) Буйрук сап өзгөрүлмө тапшырма Киргизүү талаасында жана жазууларды кирбеши кантип көзөмөлдөө үчүн колдонот динамикалуу өзгөрмөлөргө дайындоо сандыктын үчүн абдан пайдалуу болуп саналат. Ошондой эле бир нече ашуулары бир маалыматтарды үстүнөн керек болсо, абалын көзөмөлдөө үчүн пайдалуу болот.

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

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

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

Variables, жазуулар, жана Fields

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

Records

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

Fields

Ар бир киргизүү жазуу окуп болгондой, жышаан талаа бөлүштүрүү ТЭН өзгөрмөнүн колдонуп, талаага рекорд бөлүнүшү. FS бир белги болсо, талаалар ошол мүнөзү менен бөлүнүп турган. FS күчүн сап болсо, анда ар бир тамга бир өзүнчө талаа болуп калат. Болбосо, ТЭНдин толук үзгүлтүксүз сөз болушу күтүлүүдө. FS бир мейкиндикти өзгөчө учурда, талаалар мейкиндиктердин жүгүрүү жана / же кошумча барактардан жана / же Newlines менен бөлүнгөн. (Бирок --posix талкуулап көрүп, ылдый). ЭСКЕРТҮҮ: IGNORECASE наркы (төмөндө кара), ошондой эле талаа ТЭНдин туруктуу сөз айкашы болсо бөлүнүп жатканын, жана RS туруктуу сөз айкашы болсо, иш кагаздарын бөлүнгөн кандай таасир этет.

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

Киргизүү жазылган ар бир талаа, ошондой эле, анын ээлеген кызмат оруну менен, $ 1, $ 2, жана шилтеме берилиши мүмкүн. 0 $ бүткүл эсепке алуу болуп саналат. Fields Туруктуу тарабынан маалымдама кажети жок:

н = 5
басып чыгаруу $ N

Киргизүү жазылган бешинчи талаасын басып чыгара алат.

Өзгөрүлмө NF киргизүү жазылган талааларынын жалпы санына карата белгиленет.

Жокко тармактарында ($ Nf кийин, башкача айтканда талаалар) шилтемелер нөл-сап өндүрүшөт. Бирок, жокко талаага берүү (мисалы, $ (NF + 2) = 5) Nf баалуулугун жогорулатат, алардын наркы күчүн жип менен эч кандай кийлигишүү, эгин түзөт, жана, recomputed үчүн 0 $ баасын себеп талаалар рто наркы менен бөлүнүп жатат. терс саны талаага шилтемелер каргашалуу ката себеп. Decrementing NF жаңы наркы акыркы талаалардын баалуулуктар жоголуп кылат, 0 $ наркы талаалары рто наркы менен бөлүнүп жаткан менен, recomputed керек.

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

Камтылган Variables

Жышаан .Ал камтылган өзгөрмөбүз:

ARGC

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

ARGIND

Учурдагы Билэ ARGV индекси иштелүүдө.

ARGV

команда сабы далилдерди Array. Array 0ден ARGC томуна жатат - 1. динамикалык ARGV мазмунун өзгөртүүгө маалыматтар үчүн пайдаланылган материалдар менен көзөмөлдөй аласыз.

BINMODE

эмес POSIX системалары жөнүндө, `` экилик "," бардык File I / O үчүн режиминде пайдаланууну аныктайт. 1, 2 же 3-сан маанилери, ал киргизүү материалдары, өндүрүштүн материалдары, же бардык материалдары көрсөтүү, тиешелүүлүгүнө жараша, бинардык I / O керек. "Р" Сап баалуулуктар, башкача айтканда, "ж", тиешелүүлүгүнө жараша, ошол киргизүү картотекалар, же чыгыш документтеринде көрсөтүлүүгө, бинардык I / O керек. "RW" же "күнүлөшүнүн" деген сап баалуулуктар бардык Files бинардык I / O колдонуу керек деп аныктайт. Башка эч бир сап балл "RW" катары каралат, ал эми эскертүү кабар жаратат.

CONVFMT

Саны боюнча өзгөртүү формат "% .6g", демейки.

чөйрөнү

учурдагы чөйрө баалуулуктарын камтыган ар түрдүү. Array чөйрө өзгөрмөлөрү менен кошо индекстелет, бул өзгөрмөнүн болуу ар бир элемент (мисалы, чөйрөнү [ "ҮЙ"] / сырттан / Arnold болушу мүмкүн). Бул толгон өзгөртүү багытталгандыгына же системасы () кызматына аркылуу жетүүгө жышаан программаларды көргөн айлана-чөйрөгө кандай таасир бербейт.

катасы

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

FIELDWIDTHS

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

ШИЛТЕМЕЛЕР АТЫ

Учурдагы киргизүү берилген аты. Аракети жок буйрук сабында көрсөтүлгөн болсо, наркы FILENAME '' - `` болуп саналат. Бирок, FILENAME блок БАШТАЛАТ (каралбаса getline тарабынан белгиленген) ичинде Ширина жатат.

FNR

Учурдагы киргизүү делосуна киргизүү рекорддук саны.

FS

киргизүү талаасы сепаратор, демейки менен мейкиндик. Жогоруда Fields, карагыла.

IGNORECASE

бардык туруктуу сөз айкашы жана сап иш-иш-сезимталдык көзөмөлдөйт. IGNORECASE эмес нөлдүк мааниге ээ, андан кийин сап салыштырууларды жана эрежелеринде үлгү келүүсүн, негиздемени менен талаа жарылышы, эсепке алуу менен дал RS, туруктуу сөз айкашы менен бөлүп ~ менен! ~ Болсо, gensub (), gsub (), индекси () , матч (), ажыратуу (), жана суб () камтылган милдеттер бардык ишти четке туруктуу сөз айкашы иш кылып жатканда. ЭСКЕРТҮҮ: Array карамагында байланыштуу эмес, ошондуктан да, asort () милдети болуп саналат.

Ошентип, эгерде IGNORECASE нөлгө барабар эмес, / Ab / саптардын бардыгы туура "AB", "AB", "Ab", жана "AB". Бардык шыргыйларды сандыктын эки өзгөрмөлүү эле, IGNORECASE баштапкы нарк нөлгө барабар болот, ошондуктан, ар дайым сөз айкашы жана сап аракеттер, адатта, иш-сезгич болуп саналат. Unix ылайык, толук ISO ишти көрмөксөн болгондо 8859-1 Latin 1 белги коюлган колдонулат.

бор

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

NF

Учурдагы киргизүү жазылган талаалардын саны.

NR

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

OFMT

Чыгаруу номерлери боюнча формат "% .6g", демейки.

о рто

чыгаруу талаа сепаратор, демейки менен мейкиндик.

ОРТ

чыгаруу жазуу сепаратор, бир NEWLINE демейки боюнча.

PROCINFO

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

PROCINFO [ "egid"]

наркы getegid (2) системасы чалуу.

PROCINFO [ "euid"]

наркы geteuid (2) системасы чалуу.

PROCINFO [ "ТЭН"]

"FS" негиздемени менен кабар ажыратуу күчүндө болсо, же "FIELDWIDTHS" FIELDWIDTHS менен талаасы катуу күчүндө болот.

PROCINFO [ "гид"]

getgid (2) системасы чалуу наркы.

PROCINFO [ "pgrpid"]

иш тобу учурдагы жараянынын ID.

PROCINFO [ "PID"]

азыркы иштеп жараяны ID.

PROCINFO [ "ppid"]

ата-эне жараяны азыркы жараянынын ID.

PROCINFO [ "UID"]

getuid (2) системасы чалуу наркы.

RS

киргизүү жазуу сепаратор, бир NEWLINE демейки боюнча.

RT

жазуу терминатор. Жышаан RS тарабынан көрсөтүлгөн белгини же туруктуу сөз айкашы келген Текст киргизүү үчүн RT коёт.

RSTART

Матч менен дал келген биринчи мүнөздөгү индекси (); 0 болсо, эч качан. (Бул мүнөзү индекстери бир башталат дегенди билдирет.)

RLENGTH

Матч менен дал сап узундугу (); -1 эч кандай дал келсе.

SUBSEP

"034 \" демейки мүнөзү, шөкөттөп элементтер бир нече абоненттери бөлүп үчүн колдонулат.

TEXTDOMAIN

Сандыктын программасынын текст домен; Программанын Саптар локалдашкан котормолорун алуу үчүн колдонулат.

Arrays

Arrays чарчы кашаанын ортосундагы сөз менен жазылып жатат ([жана]). Сөздөр көрсөтүлгөнүн тизме болсо (Expr, Expr ...), андан кийин даяр астынкы SUBSEP өзгөрмөнүн наркы тарабынан бөлүнгөн ар бир сөз (сап) наркы, анын чаптоо турган бир сап болуп эсептелет. Бул объект көбөйүп dimensioned Arrays тууроочу колдонулат. Мисалы:

мен = "А"; к = "B"; к = "С"
х [I, J, к] = "деп жазып, дүйнө \ н"

сап "A \ 034B \ 034C" менен кошо индекстелет жатат киет X элементи жипти "деп жазып, дүйнө \ н" тапшырат. Сандыктын Бардык Arrays башкача айтканда, сап-ахлагы менен кошо индекстелет, Associative болуп саналат.

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

эгер (тизилип д) басма Array [д]

Катар бир нече абоненттери бар болсо, пайдалануу (I, J) тизди.

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

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

Өзгөрмө терүү жана кайра

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

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

Бир сап, бир катар айландырылат керек болгондо, кайра strtod (3) колдонуу менен ишке ашып жатат. Бир катар аргумент катары өзгөрмөнүн сан наркы менен, sprintf (3) CONVFMT бир формат сап катары баасын колдонуу менен бир сапка динин кабыл алат. Бирок, шыргыйларды сандыктын эки бардык сандар калкып-пункту карабай, ажырагыс баалуулуктар дайыма бүтүн катары кайрылышат. Ошентип, бул

CONVFMT = "% 2.2f" а = 12 б = "А"

өзгөрүлмө б ", 12" эмес, "12.00" бир сап мааниге ээ.

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

Мисалы, "57" деп, ал сап туруктуулар кетсек, сандардын сап эмес, алар сап турактуулуктар болуп эсептелишет. `` Сандардын сап '' идеясы гана талаада тиешелүү, getline киргизүү, FILENAME, ARGV элементтери, чөйрөнү элементтери жана сандык саптар бар () ич тарабынан түзүлгөн бир катар элементтери. Негизги идея сандык окшойт колдонуучу киргизүү, ошондой эле бир гана колдонуучу киргизүү, ошол жол менен мамиле кылуу керек.

Uninitialized өзгөрмөлөр 0 туюнтманын маанисин жана сап мааниси "" (КР, же бош, сап) бар.

Octal жана алтылык турактуу

Жышаан жөнүндө нускасы 3,1 баштап, сиз сандыктын программанын булак коду менен C-стили Octal жана он алтылык туруктуулар пайдалана алат. Мисалы, Octal балл 011 9 саны бирдей, ал эми он алтылык маани 0x11 17 ондук барабар.

String турактуу

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

\\

Кадимки кайырма.

\ бир

`` Сак "," белгиси; Адатта, ASCII BEL мүнөзү.

\ б

өчүрүү.

\ е

пайда-жайылат.

\ н

жаңы сызык.

\ р

ташуу, кайра.

\ т

горизонталдуу өтмөк.

\ V

тигинен өтмөк.

\ х Hex сан

\ X төмөнкү он алтылык орундуу сап менен берилген белги. ANSIC эле, бардык кийинки он алтылык сан качып кезек бир бөлүгү болуп саналат. Мисалы, "\ x1b" ASCIIESC (качып) мүнөз (Бул өзгөчөлүк бизге комитети тил дизайны жөнүндө бир нерсе. Айтыш керек).

\ койд

тамга 1- атынан, 2 же 3 орундуу Octal орундуу катарда. Мисалы, "\ 033" ASCII ESC (качып) мүнөзү.

\ с

Кадимки тамга с.

Качып тизилишин дайыма дайыма билдирип ичинде колдонулушу мүмкүн (мисалы, / [\ т \ ж \ н \ р \ V] / Художник белгилерине дал).

шайкештикти режиминде Octal жана алтылык качып ырааттуулугу атынан каармандар туруктуу сөз айкашы Туруктуу пайдаланганда түзмө-түз мамиле кылынат. Ошентип, / а \ 52b / а \ * B / / барабар.

Patterns жана Иш-чаралар

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

{Басма}

ал толугу менен жазып чыгара алат.

Comments `` # '' белгиси менен башталат, ал сызыктын аягына чейин уланат. Бош саптар өзүнчө отчетко карата колдонулушу мүмкүн. Адатта, бир билдирүү NEWLINE менен аяктайт, бирок, бул `` "," аяктай саптары боюнча иши, {, чынбы? ,:, &&, же || . Менен же башка да чейин коюлган алардын арыздары жазуусу төмөнкү сызык боюнча иштер улантылган жок. Башка учурларда, бир сап турган учурда, бир 'менен аякташы менен улантууга болот NEWLINE эске алынбайт.

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

Patterns

Сандыктын оюу төмөнкү бири болушу мүмкүн:

БАШТАЛАТ END / туруктуу сөз айкашы / мамиледеги сөз үлгү && Буркуттор || Маанилү: Чет? үлгүгө: үлгүгө (үлгү)! узор pattern1, pattern2

Менен башталат жана аяктайт киргизүүгө каршы сыналган эмес, оймо-эки өзгөчө түрлөрү болуп саналат. Бардык иш-бөлүктөрү ченемдүүлүктөрү бардык арыздар бирдиктүү блок БАШТАЛАТ жазылган болсо, бириктирилди БАШТАЛАТ. Алар киргизүү бардык окуу чейин аткарылат. Ошо сыяктуу эле, ар бир END блоктору бириктирилди, качан, өлүм бардык киргизүү (же чыгуу сөздөрү аткарылган учурда) чарчаган эле. Менен башталат жана аяктайт узоры үлгү сөздөрдү башка моделдер менен айкалыштырылышы мүмкүн эмес. Менен башталат жана аяктайт ченемдүүлүктөрү дайынсыз иш бөлүктөрү болушу мүмкүн эмес.

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

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

&&, || Менен! Логикалык ЖАНА, ЖЕ логикалык жана логикага эмес, ошондой эле С эле С Алар, кыска-райондук баа болуп, тиешелүүлүгүнө жараша, ошондой эле алгачкы үлгү сөз айкаштарын бириктирүү үчүн пайдаланылат. көп тилдерде эле, кашаалар баалоо тартибин өзгөртүү үчүн пайдаланылышы мүмкүн.

:? Оператор С эле оператор болуп, анда биринчи үлгүсү чыныгы сыноо үчүн колдонулган үлгү экинчи үлгү болуп саналат, эгерде ал үчүнчү болуп саналат. Бир гана экинчи жана үчүнчү үлгүлөрүнүн бири бааланат.

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

Regular Expressions

Жөнөкөй сөздөр egrep табууга берилген түрү болуп саналат. төмөнкүдөй Алар белгиден турат:

с

эмес metacharacter с дал келет.

\ с

Кадимки тамга с дал келет.

.

NEWLINE, анын ичинде ар кандай мүнөзгө дал келет.

^

Саптын башталышы дал келет.

$

Саптын аягы дал келет.

[ABC ...]

тамга тизмеси, каармандардын ABC ... ар кандай туура.

[^ ABC ...]

мизи тамга тизмеси, ABC башка мүнөзгө дал ....

r1 | R2

кезектешүү: R1 же R2 да дал келет.

r1r2

чаптоо: R1, R2 жана дал келет.

R +

бир же бир нече р деген туура.

R *

Матчи нөлдүк же андан көп р "с.

р?

Матчи нөл же бир р "с.

(Ж)

ЖККУ: дан р.

р {н}

р {н,}

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

Же --posix же --re-аралыгы буйрук сабында көрсөтүлгөн болсо, мөөнөтү сөздөр гана жеткиликтүү болот.

\ ж

башында же сөздүн аягында же бош сап дал келет.

\ B

Бир сөз ичинде бош сап дал келет.

\ <

сөздүн башында бош сап дал келет.

\>

сөз аягында бош сап дал келет.

\ ж

ар бир сөз-уюмдаштыруу мүнөзгө (тамга, сандан, же баса) дал келет.

\ W

сөз-уюмдаштыруу эмес, ар кандай мүнөздөгү дал келет.

\ `

өткөрө (сап), башына бош сап дал келет.

\ '

бөлүп-жылдын акырына карата бош сап дал келет.

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

Character класстар POSIX стандартына киргизилген жаңы өзгөчөлүк болуп саналат. Бир тамга классы белгилүү касиетти бар каармандардын тизмесин сүрөттөгөн үчүн атайын жазуу, ал эми иш жүзүндө каармандардын жерде өздөрү өлкөдө жана / же тамга менен белгиленген мүнөзү ар кандай болот. Мисалы, тамгалык белги деген эмне деген түшүнүк АКШда жана Парижде айырмаланат.

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

[: alnum:]

Тамга.

[: Alpha:]

Тамгалык белги.

[: бош:]

Space же табулатура белги.

[: cntrl:]

Control белгиден.

[: орундуу:]

Сандык белгилер.

[: Диаграмма:]

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

[: төмөнкү:]

Төмөнкү окуя тамгалык белги.

[: Басма:]

Басма үчүн белгилер (тамгалар көзөмөлдөө эмес, каармандар.)

[: punct:]

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

[: мейкиндиги:]

Space белги (мисалы, космос, аккорды, жана formfeed катары, бир нече ат).

[: жогорку:]

Жогорку-иши тамгалык белги.

[: xdigit:]

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

Мисалы, POSIX стандарттын чейин, тамга дал сиз / жазууга туура келет [A-Za-Z0-9] /. Сиздин белги коюлган, ал жерде башка тамгалык белгилер болсо, бул аларга дал келген эмес, жана мүнөзү белгиленген ASCII башкача топтолуп, анда бул да ASCII тамга дал келбей калышы мүмкүн. POSIX тамга класстары менен, сиз / [[: alnum:]] жаза аласыз /, жана бул тамгалар менен тамга жана сандык белгилерди туура.

Кошумча эки атайын удаалаштыктары тамга тизмесинде пайда болот. Бул даярдоону, же иргөө, максаттары үчүн барабар бир белгилерди (аталган даярдоону элементтер) бирден ашык мүнөз менен билдирет, ошондой эле бир нече белгилер болушу мүмкүн эмес ASCII тамга батканга чейин колдонулат. (Мисалы, French бир жөнөкөй `` д '' жана оор-салам E` барабар.)

даярдоону Symbols

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

бирдей Classes

An бирдей класс барабар каармандардын тизмесин үчүн тил өзгөчө аты болуп саналат. Аты тиркелген жатат [= жана =]. Мисалы, аты-д `` электрондук бардык өкүлү үчүн колдонулушу мүмкүн, '' `` д ',' 'жана `` E`.' '' Бул учурда, [[= д =]] туруктуу сөз айкашы деген д, е ", же E` ар кандай туура.

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

\ Ж \ B, \ <, \> \ п, \ W, \ `жана \ 'операторлору үчүн жышаан мүнөздүү; Алар GNU туруктуу сөз айкашы китепканаларына объектилерди негизинде бутактары.

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

Аракети жок

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

--posix

Бир гана POSIX үзгүлтүксүз сөздөр колдоого алынат, GNU операторлор өзгөчө эмес. (Мисалы, \ W W кадимки дал). Тынып-сөздөр уруксат берилет.

--traditional

Салттуу Unix үзгүлтүксүз сөздөрү дал келет сандыктын. GNU операторлор өзгөчө, аралыгы сөздөр мүмкүн эмес, жана да POSIX мүнөзү класстар эмес, ([[: alnum:]] ж.б.у.с.). Octal жана алтылык качып ырааттуулугу менен сүрөттөлгөн каармандар, алар туруктуу сөз айкашы metacharacters өкүлү болсо да, түзмө-түз мамиле кылынат.

--re-аралыгы

--traditional берилген болсо да, дайыма айткандарынан аралыгы сөздөрдү уруксат берүү.

Иш-аракеттер

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

Байланыш операторлоруна

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

(...)

Grouping

$

Талаа маалымдама.

++ -

Толук өсүндү жана декремент, приставка жана плакаты да.

^

Даражага (** да пайдаланылышы мүмкүн, ал эми ** = тапшырма оператор үчүн).

+ -!

Иштебесе плюс, минус иштебесе, жана логикалык тескериси.

* /%

Көбөйтүү, бөлүү, жана модулу.

+ -

Кошулган жана кемитүү.

мейкиндик

Саптарды чаптоо.

<>

<=> =

! = == үзгүлтүксүз мамиледеги операторлор.

~! ~

Жөнөкөй сөз матч, мизи матч. ЭСКЕРТҮҮ: дайыма үзгүлтүксүз сөз эмес, (/ Күлкү /) а ~ сол жагында же ~!. Бир гана оң жагынан бирин пайдаланат. Сөз айкашы / Күлкү / ~ Exp мааниси катары кабыл алган ((0 $ ~ / Күлкү /) ~ Exp). Бул, адатта, жок, эмне максат болуп саналат.

боюнча

Array мүчө.

&&

Логикалык ЖАНА.

||

Логикалык ЖЕ.

?:

C шарттуу туюнтма. Бул түрү expr1 бар? expr2: expr3. Expr1 чын болсо, сөз мааниси expr2, эгерде ал expr3 жатат. Expr2 жана expr3 бир гана бааланат.

= + = - =

* = / =% = ^ = Берүү. Абсолюттук сыяктуу тапшырма (VAR = балл) жана оператор-тапшырма (башка түрлөрү) колдоосу менен ишке ашырылат.

Control отчеттор

башкаруу отчет болуп төмөнкүлөр саналат:

эгер (шарты) көчүрмө [башка билдирүү], ал эми (шарты) билдирүү үчүн (шарты), ал эми арыз эмне (expr1; expr2; expr3) толгон жок кылуу үчүн (тизилип курстар) арыз тыныгуудан мындан ары да көчүрмө [индекси] Array чыгууга [сөз айкашы] жок { отчеттуулук}

I / O Отчет

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

жакын (билэ [кантип])

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

getline

Кийинки киргизүү билдирүүлөрдө $ 0 коюу; белгиленген NF, NR, FNR.

getline <билэ

Билэ кийинки билдирүүлөрдө $ 0 коюу; белгиленген Nf.

getline VAR

Кийинки киргизүү билдирүүлөрдө Var коюу; белгиленген NR, FNR.

getline VAR <билэ

Билэ кийинки билдирүүлөрдө орнотуу Var.

команда | getline [VAR]

Run буйрук чыгарылышты чоктой же жогоруда $ 0 же курстар, кирген.

команда | & getline [VAR]

Run буйругу чыгарылышты чоктой кошумча жараян катары да жогоруда $ 0 же курстар, кирген. Co-жараяндардын бир жышаан узартуу болуп саналат.

кийинки

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

nextfile

Учурдагы киргизүү билэни иштетүү токтотулсун. Кийинки киргизүү окуй кийинки киргизүү делосуна келип чыккан. FILENAME жана ARGIND турушат, FNR 1 абалына келтирилет жана кайра иштетүү сандыктын программасы биринчи үлгү менен башталат. Киргизүү маалыматтарды акырына жеткен болсо, END блогу (лар), эгер андай болсо, аткарылат.

басма

Учурдагы рекорд басып чыгарат. Чыгаруу жазуу ОРТ өзгөрмөнүн наркы менен токтотулат.

Басып чыгаруу Expr-тизме

Prints билдирген. Ар бир сөз айкашы рто өзгөрмөнүн наркы менен бөлүнгөн. Чыгаруу жазуу ОРТ өзгөрмөнүн наркы менен токтотулат.

Басып чыгаруу Expr-тизме> билэ

Билэ Prints билдирген. Ар бир сөз айкашы рто өзгөрмөнүн наркы менен бөлүнгөн. Чыгаруу жазуу ОРТ өзгөрмөнүн наркы менен токтотулат.

printf Fmt, Expr-тизме

Формат жана басып чыгаруу.

printf Fmt, Expr-тизме> билэ

Формат жана делосуна бастырылат.

системасы (кмд-сап)

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

fflush ([File])

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

Кошумча чыгаруу багыттоолор басма жана printf үчүн жол берилет.

Басып чыгаруу ... >> билэ

делосуна өндүрүүнү appends.

Басып чыгаруу ... | буйрук

чоор жөнүндө жазган.

Басып чыгаруу ... | & буйрук

кошумча жол маалыматты жөнөтөт.

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

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

printf билдирүүсү

Сандыктын printf билдирүүдө жана sprintf () милдеттерин (төмөндө кара) түрү төмөнкү өзгөртүү өзгөчөлүгү түрлөрүн кабыл алуу:

% с

An ASCII мүнөзү. % C үчүн колдонулат аргумент сан болсо, анда ал бир мүнөзү катары каралат жана басылып чыгарылган. Болбосо, аргумент сап болушу болжолдонууда, бул Саптын биринчи тамга басылат.

% г% мен

Бир ондук сан (бүтүн бөлүгү).

% е,% E

Сүзүүчү чекити сан түрүндө [-] d.dddddde [+ -] күбөлүк. % E формат ордуна электрондук E колдонот.

% е

Сүзүүчү чекити түрү жана саны [-] ddd.dddddd.

% г% G

Nonsignificant нөлдөр тыюу менен, кайсынысы кыска% е же% е кайрылып, колдонуу. % G формат% д ордуна% E колдонот.

% о

An коюлбаган Octal саны (ошондой эле бир бүтүн сан).

% у An коюлбаган ондук саны (кайрадан, бүтүн).

% S

Бир сап.

% X% X

An коюлбаган алтылык саны (бүтүн). % X формат ABCDEF ордуна ABCDEF менен колдонот.

%%

Бир% мүнөзү; эч кандай талаш-тартыш кайра түзүлөт.

Милдеттүү эмес, кошумча параметрлери% жана контролдоо катынын ортосунда болушу мүмкүн:

саны $

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

-

сөз айкашы өз чөйрөсүндө сол-актаган керек.

мейкиндик

сандык оодаруу үчүн, боштук менен оң баалуулуктарды Prefix жана минус белгиси менен терс баалуулуктар.

+

туурасы СЕМЫН (төмөндө кара) чейин колдонулган кошуу белгиси, оң ар дайым маалымат калыптанган керек болсо да, сан оодаруу үчүн бир белги, камсыз кылуу үчүн мындай дейт. + Космос өзгөрткүчү жокко чыгарат.

#

бир көзөмөл каттарында үчүн `` кошумча түрүн '' колдон. % O, бир нөлдү жеткирүү. % X, жана% X үчүн, алдынкы 0XБ Л же 0XБ Л бир nonzero натыйжасында үчүн камсыз. % Мисалы,% E, жана% F, жыйынтыгы дайыма ондун камтыйт. % Г, жана% G үчүн, артта нөлдөр натыйжасында алыс эмес.

0

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

туурасы

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

. prec

басып жатканда так көрсөтүлгөн бир катар колдонулат. % Мисалы,% E, жана% е түрдө, бул ондук укугуна басып келген сан санын аныктайт. % G үчүн, жана% G түрдө, ал маанилүү орундуу максималдуу санын аныктайт. % Д үчүн,% O% и,% U% X, жана% X түптөлгөн, аны басып чыгаруу үчүн орундуу минималдуу санын аныктайт. % S үчүн, аны басып чыгаруу керек саптан белгилик жогорку санын аныктайт.

ANSI C printf динамикалуу туурасы prec кыраат () режими колдоого алынат. Туурасы prec шарттарды да ордуна A * алардын мааниси printf же sprintf үчүн () аргумент тизмеден алынышы себеп болот. Динамикалуу туурасы тактык менен турумдук specifier колдонуу үчүн, формат сап менен + кийин саны $ камсыз. Мисалы, "% 3 $ 2 $. * 1 $".

Атайын File Ысымдар

Бир делосуна басма же printf дагы I / O даректи кылып жатканда, бир делосуна тартып getline аркылуу же жышаан ички белгилүү бир атайын тутмайды тааныйт. Бул аты жетүү сүрөттөмөлөр жышаан "башкы жараянынын тукум ачуу үчүн (адатта, кабыгы) берет. Бул билэ ысымдар да маалыматтарды атын буйрук сабында пайдаланылышы мүмкүн. Издөө болуп төмөнкүлөр саналат:

/ ишт.ч. / stdin

стандарттык киргизүү.

/ ишт.ч. / stdout

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

/ ишт.ч. / stderr

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

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

Ачык билэ сыпаттаманы н байланышкан билэ.

Бул ката билдирүүлөрдү үчүн өзгөчө пайдалуу. Мисалы:

"Сен аны тартты!" Басып чыгаруу > "/ Иштеп чыгуучунун / stderr"

Эгерде колдонуу керек эле, ал эми

"Сен аны тартты!" Басып чыгаруу | "кошка 1> & 2"

TCP / IP тармак байланыштарды түзүү үчүн жана биргелешип иштетүү операторунун | төмөнкү өзгөчө аты менен колдонулушу мүмкүн.

/ прямой / TCP / lport / rhost / rport

Үчүн File TCP / IP алыскы порт rport боюнча алыскы хост rhost жергиликтүү порт lport жөнүндө байланыштуу. 0 портту пайдалануу системасы порт тандап бар.

/ прямой / UDP / lport / rhost / rport

Окшош, бирок пайдаланууга UDP / IP ордуна TCP / IP.

/ прямой / чийки / lport / rhost / rport

келечекте пайдалануу үчүн корголгон.

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

/ ишт.ч. / PID

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

/ ишт.ч. / ppid

Бу билэни окуп NEWLINE менен токтотулат ата-жараяны азыркы жараянынын ID, ондук менен кайтарат.

/ ишт.ч. / pgrpid

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

/ ишт.ч. / колдонуучу

Бу билэни окуп NEWLINE менен токтотулат бир рекорд кайтарат. талаалары боштук менен бөлүнгөн. $ 1 getuid наркы (2) системасы чакыруу, $ 2 geteuid наркы (2) системасы чакыруу, $ 3 getgid наркы (2) системасы чакыруу, 4 $ getegid наркы (2) системасы чакыруу. Кошумча талаалары бар болсо, анда алар getgroups (2) тарабынан кайра кайтарылган топ аныктагычтары болуп саналат. Бир нече топтор бүт системаларда колдоого алынышы мүмкүн эмес.

Сандык Functions

Сандыктын эсеп милдеттерин-жылы курулган төмөнкүлөр жатат:

atan2 (ж, х)

Радиандарга ж / Х арктангенс кайтарат.

Cos (Expr)

Радиандарга болуп Expr боюнча косинус, кетет.

Exp (Expr)

көрсөткүчтүү милдети.

Int (Expr)

бүтүн үчүн Truncates.

журнал (Expr)

табигый лагы милдети.

Rand ()

0 ортосунда кокус санын жана 1.

күнөө (Expr)

Радиандарга болуп Expr менен синус, кетет.

sqrt (Expr)

тамыр системасы.

srand ([Expr])

Кокустук саны генератор үчүн жаңы үрөн катары Expr колдонот. Эч кандай Expr каралган болсо, анда күн убакыт колдонулат. кайра балл кокустук саны генератор мурдагы үрөн болуп саналат.

String Functions

Жышаан сап милдеттерин-жылы курулган төмөнкүлөр жатат:

asort [г])

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

gensub (р, с, ч [т])

Туруктуу сөз айкашы р беттешүүлөрүнө максаттуу сап м табылган. Ч г же G баштап сап болсо, анда с р бардык дан алмаштырылсын. Болбосо, ч р дал келүү ордуна кайсы көрсөткөн бир сан болуп саналат. Т берилген жок болсо, анда 0 $ ордуна колдонулат. Алмаштыруу текст с ичинде, ырааттуулугун \ н, N 1, 9-бир орундуу болот, parenthesized subexpression чи N 'дал эле текстти көрсөтүү үчүн колдонулушу мүмкүн. Мүнөздөмө берет жана ошондой эле 0 \ тизмеги толугу менен дал келген текстти билдирет. Чакан () жана gsub () айырмаланып, барак сап милдетинин натыйжасында кайтарылып, ал эми баштапкы максаттуу сабы жок.

gsub (R, S [т])

Сап т үзгүлтүксүз сөз Р дал келген ар бир саптар үчүн, сап с алмаштыруу жана алмаштыруу санын кайра. Т берилген жок болсо, анда 0 $ колдонушат. An & алмаштыруу текстине чындыгында дал эле текст менен алмаштырылат. Колдонуу \ & кадимки алуу & үчүн. (Бул "\\ &" деп жазса керек; жышаан көрүп: Натыйжалуу сандыктын программалоо боюнча чакан алмаштыруу тексти боюнча "менен тетири & эрежелерин туурасында толук маалымат алуу (), gsub (), жана gensub ().)

индекси (S, T)

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

узундугу (керектүүсүн [х] менен)

Сап жылдардын узундугун, же Кудайдын берилген эмес деп тапса, эгерде 0 $ узундугун кайтарат.

матч (S, R [бир])

Р жок болсо, туруктуу сөз айкашы р пайда болот, башкача айтканда, 0 мунда абалын кайтарып берет, ошондой эле RSTART жана RLENGTH баалуулуктарын көрсөтөт. Аргумент тартиби ~ оператор үчүн да бирдей экенин Эскертүү: ул ~ кайра. Көрүүнүн бир берилген болсо, анда 1 N аркылуу тазаланып, анан элементтер жатат р тийиштүү parenthesized subexpression дал с участоктору менен толгон. Бир жылдын 0'th элементи толугу менен туруктуу сөз айкашы р менен дал келген жылдардын бөлүгүн камтыйт.

бөлүүчү (лер, а [р])

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

sprintf (Fmt, Expr-тизме)

Prints Expr-тизме Fmt ылайык, жана натыйжада жипти кайтарат.

strtonum (к)

Көчөсү, ошондой эле анын сандык маанини кайтарат. К алдынкы 0, strtonum () менен башталат, анда к бир Octal саны экендигин божомолдойт. К алдынкы 0XБ Л же 0XБ Л менен баштаса, strtonum () атындагы кёчё, бир алтылык саны экендигин божомолдойт.

ички бөлүмдү (R, S [т])

Эле gsub сыяктуу (), ал эми биринчи гана дал саптар алмаштырылган.

substr (лер, мен [н])

Мен баштап күндөрү өтө н -character саптар кетет. Н кереги жок болсо, анда калган колдонулат.

tolower (к)

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

toupper (к)

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

убакыт Functions

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

mktime (datespec)

Rurns systime менен кайтып эле түрдө бир убакыт мөөрү салып datespec (). Datespec түрү ЖЖЖЖ MM DD HH MM SS [тема] бир сап болуп эсептелет. сап мазмуну тиешелүүлүгүнө жараша, анын ичинде кылымда толук жыл өкүлү алты же жети сандар 1 12-ай, 1 31 ай күнү, 0дөн 23-күнү саат, мүнөт 0 чейин 59, экинчиси 0дөн 60, жана кошумча жайкы желек. Бул сан маанилери көрсөтүлгөн кыркаларынын чегинде болушу керек эмес; Мисалы, -1 бир саат түн ортосуна чейин 1 саат билдирет. теги-нөл Григориан календары жыл 0 мурунку жылдын 1 жыл менен болжолдонууда -1 мурунку жылы 0. убакыт жергиликтүү убакыт алкактарынын деп болжолдонуп жатат. жайкы желек оң болсо, анда убакыт күндүн үнөмдөө убактысы болжолдонот; нөлгө болсо, убакыттын эталону убактысы болжолдонот; жана терс (демейки) болсо, mktime () жайкы убакыт белгилеген убакыт бою күчүндө экендигин аныктоого аракет кылат. Datespec жетиштүү элементтерди да камтышы же натыйжада убакыт чектен чыккан болсо, анда жок болсо, mktime () кайтарып берет -1.

strftime ([формат [, эни]])

Жылдар түрдө тактоо боюнча убакыт. Убакыт белгиси systime тарабынан кайра кайтарылган эле түрүндө () болушу керек. Убакыт белгиси жок болсо, анда күн сайын азыркы убакыт колдонулат. Формат жоголуп кетсе, өндүрүү үчүн демейки формат барабар датасы (1) колдонулат. Жеткиликтүү болушу кепилденген формат оодаруу үчүн ANSI С strftime () иштеши үчүн тактоого карагыла. Strftime бир коомдук-домен чыгаруу (3) жана жышаан менен келген бир киши баракча; бул версия жышаан куруу үчүн колдонулган болсо, анда ал киши беттеги баяндалган оодаруу бардык жышаан жалпыга жеткиликтүү болуп саналат.

systime ()

бери секунд саны күнү азыркы убакыт кетет доору (POSIX системалары боюнча 1970-01-01 00:00:00 UTC).

Bit Manipulations Functions

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

жана (v1, v2)

Бинардык ЖАНА v1 жана V2 каралган баалуулуктарды кайтуу.

compl (д)

Val-жылдын бинардык бүтүргөнүнө, кайра.

lshift (д, саны)

Val баасын кайра, саны бит калган өттү.

же (v1, v2)

Бинардык ЖЕ v1 жана V2 каралган баалуулуктарды кайтуу.

rshift (д, саны)

Оң саны бит менен өттү Val баасын кайра.

россия (v1, v2)

V1 жана V2 каралган баалуулуктар бинардык Xor кайра.

Internationalization Functions

Жышаан жөнүндө нускасы 3,1 тартып, төмөнкүлөр Нускасы-учурда саптарды которуу үчүн сандыктын программанын ичинде колдонулушу мүмкүн. Толук маалымат алуу үчүн, жышаан көрүп: Натыйжалуу сандыктын программалоо.

bindtextdomain (каталог [, домен])

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

Демейки домен TEXTDOMAIN наркы болуп саналат. Каталогдорду нөл сап ( "") болсо, анда bindtextdomain () берилген мүлктүн үчүн милдеттүү учурдагы кайтарат.

dcgettext (сап [, домен [, категория]])

Тил категория үчүн текст домен чөйрөдө сап которууну кайтарат. Домендин жарыяланбаган маани TEXTDOMAIN учурдагы наркы болуп саналат. Категориясы боюнча жарыяланбаган маани "lc_messages" болуп саналат.

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

dcngettext (string1, string2, саны [, домен [, категория]])

Тил категория үчүн текст домен чөйрөдө string1 жана string2 котормосунун саны үчүн колдонулган көптүк түрдө кетет. Домендин жарыяланбаган маани TEXTDOMAIN учурдагы наркы болуп саналат. Категориясы боюнча жарыяланбаган маани "lc_messages" болуп саналат.

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

USER-белгиленген милдеттерди

Сандыктын менен милдеттери төмөнкүдөй аныкталды:

милдети аталышы (параметр тизме) {} отчеттуулук

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

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

милдети е (P, Q, а, б) # а жана б жергиликтүү {...} / ABC / саналат {...; е (1, 2); ...}

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

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

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

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

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

Динамикалуу LOADING иш милдеттерди

Жышаан 3,1 айы баштап динамикалуу чуркап жышаан тилмечке, милдеттерин жаңы-жылы курулган кошо аласыз. толук маалымат бул кол бетине кирбеген; жышаан көрүп: Натыйжалуу сандыктын чоо-жайын билүү үчүн программалоо.

узартуу (объект, кызмат)

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

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

сигналдарды

pgawk эки сигналдарды кабыл алат. SIGUSR1 ал awkprof.out да, же эмне билэ --profile тандоосу менен аталды ге делосуна бир кароо жана милдети чакыруу үймөгүн төгүндүлөрүн себеп болот. Андан кийин чуркап келет. SIGHUP кароо жана милдети чалуу үймөгүн жана андан чыгууга агызууга үчүн себеп болот.

мисалы

Бардык колдонуучулардын кирүү аттарын Басып чыгаруу жана Сорттоо: БАШТАЛАТ {FS = ":"} {$ 1 басып | "сорт"} бир делосуна саптарды-жөнү: {NLINES ++} END {басма NLINES} анын санына жараша ар бир сапты озуп Билэ: {басма FNR, 0 $} чапташтырыш жана сап саны (бир темасы боюнча өзгөрө): {басма NR, $ 0}

Internalization

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

жышаан "БАШТАЛАТ {басып" деп жазып, дүйнөнү "} '

ар дайым жазып койбойлубу басып, дүйнө. Бирок,

жышаан "БАШТАЛАТ {басып _" деп жазып, дүйнө "} '

Bonjour, Парижде Monde басып мүмкүн.

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

1.

А сиздин программа менен байланышкан ысмын текст доменди коюуга TEXTDOMAIN өзгөрмөгө көрсөткүч дайындоо үчүн иш-аракет БАШТАЛАТ кошуу.


БАШТАЛАТ {TEXTDOMAIN = "myprog"}

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

2.

МАРК жазган Жакшы Кабар алдынкы баса менен которулган керек бардык саптар.

3.

Зарыл болсо, dcgettext () жана / же bindtextdomain () тийиштүү учурларда, Программанын иш-милдеттерди пайдалануу.

4.

Run жышаан --gen-Po -f myprog.awk> myprog.po Программанын үчүн .po билэни түзүү үчүн.

5.

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

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

POSIX шайкештигин

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

Сандыктын Эгерде блок ишке Баштай кийин бир делосуна эле аргументтер менен, ача турган китеп буйрук сап өзгөрүлмө тапшырма болот экенин көрсөтүп турат. Бирок, буга чейин өнүктүрүү боюнча, мындай тапшырма ар бир билэ аталыштар алдында пайда болгондо, тапшырма блогу чуркап эле БАШТАЛАТ алдында боло турган. Арыздарды `` өзгөчөлүк көз каранды болду. '' 'Өзүнүн документтерин дал сандыктын өзгөрүп жатканда, Программанын аткарылышын алдында өзгөрмөлөрдү берүү үчүн -v тандоонун эски жүрүм-болбосунан көз каранды болгон арыздарды канааттандыруу кошулду. (Бул өзгөчөлүк да Bell лабораториясында жана GNU иштеп макулдашкан эле.)

Ишке ашыруу өзгөчөлүктөрү -W параметр POSIX стандарты болот.

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

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

Башка жаңы мүмкүнчүлүктөр бар: бир нече -f тандоолордун пайдалануу (MKS чейин сандыктын); чөйрөнү тутуму; \ а, жана \ V качып тизмектеринин (жышаан-жылы алгачкы кылган жана Белл лабораториялары нускасы кайра тойгузган); tolower () жана toupper () милдеттерин-жылы курулган (Белл лабораториялары нускадан); жана printf менен ANSI C өзгөртүү мүнөздөмөлөрү (Белл лабораториялары нускасы биринчи кылган).

тарыхый өзгөчөлүктөрү

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

а = узундугу # Ыйык Algol 60, Батман!

эки эле

а = узундугу ()
а = узундугу (0 $)

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

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

GNU Extensions

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

Жышаан төмөнкү өзгөчөлүктөр POSIX сандыктын жеткиликтүү эмес.

*

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

*

\ Х качып тизмеги. (--posix менен өчүрүлгөн.)

*

Fflush () милдети. (--posix менен өчүрүлгөн.)

*

Кийин сызыктарды уланта жөндөмү? жана:. (--posix менен өчүрүлгөн.)

*

Сандыктын программаларга Octal жана он алтылык константалар.

*

ARGIND, BINMODE, катасы, бор, RT жана TEXTDOMAIN өзгөрмө атайын эмес.

*

IGNORECASE өзгөрүлмө, каптал-таасирлери жок.

*

FIELDWIDTHS өзгөрмө жана туруктуу, туурасы талаа бөлүү.

*

PROCINFO Array жеткиликтүү эмес.

*

Туруктуу сөз катары RS колдонуу.

*

I / O багытталгандыгына үчүн атайын билэ аттары таанылган эмес.

*

| & Биргелешип жараяндарды түзүү үчүн оператор.

*

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

*

Жакын () иштеши үчүн кошумча экинчи аргумент.

*

(Матч) иштеши үчүн кошумча үчүнчү аргумент.

*

Printf жана sprintf менен турумдук көрсөткүчтөрдү колдонуу жөндөмдүүлүгү ().

*

Delete Array колдонуу тизилип мазмунун толугу менен жок кылууга.

*

Nextfile колдонуу азыркы киргизүү делосуна кайра баш тартууга.

*

Жана (), asort (), bindtextdomain (), compl (), dcgettext (), gensub (), lshift (), mktime (), же (), rshift (), strftime (), strtonum (), systime () жана россия () иштейт.

*

Жергиликтелүүчү саптар.

*

Узартуу жаңы милдеттерди динамикалуу менен-жылы курулган кошту () милдети.

Шыргыйларды сандыктын эки китепти жабуу () милдеттерин кайра наркын аныктоо эмес. Жышаан .Ал жакын () наркын кайтарып fclose (3), же pclose (3), тиешелүүлүгүнө жараша, өндүрүштүн билэни же чоор жапкан учурда. киргизүү чоор жапкан учурда иштеп чыгып статусун кайтарат. кайра наркы -1 деген билэ, чоор же ко-жараян бир багытталгандыгына ачылган жок болсо.

Жышаан --traditional тандоосу менен дуба кылып жатканда, -F тандоосу боюнча ТЭН аргументи `` Т '' болсо, анда ТЭН табулатура мүнөзүнө коюлган. ... деп Терип жышаан -F \ т Эскертүү жөн эле номиналдык `` т үзүндү себеп болот "," жана `` \ м болуу өтө кыйын, "-F тандоосу менен". Бул кыйла жагымсыз өзгөчө кырдаал болсо, демек, ал демейки жүрүм-туруму эмес. --posix көрсөтүлгөн коюлган болсо, бул жүрүм-туруму да пайда бербейт. Чынында эле кабар айтуу бөлүштүрүү үчүн табулатура мүнөзгө ээ болуу үчүн, аны жалгыз тырмакчаны колдонуу туура болот: жышаан -F '\ т "....

Башка буйруктарды карагыла: күтүп , б.б , толугу менен , execv , getfacl , ушжуу , uniq , rmmod , pvcreate , rsh , unix2dos , кал , ТЭН , CD , iwpriv , swapon , autofs , талкуулоо , Обзор , эркин , Луганск , execl , fdisk , боюнча , ким , iwconfig , ifconfig , vgdisplay , ачык , lsmod , ntohs , mailq , өлтүрүп , wtmp