Ash - Linux amri - Unix Amri

NAME

mkalimani wa amri sh ( shell )

SYNOPSIS

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -words [ lengo ... ]

DESCRIPTION

Sh ni mkalimani wa amri ya kawaida kwa mfumo. Toleo la sasa la sh ni katika mchakato wa kubadili ili kuzingatia vipimo vya POSIX 1003.2 na 1003.2a za shell. Toleo hili lina vipengele vingi ambavyo vimefanya hivyo kuonekana sawa katika baadhi ya sifa kwa shell Korn, lakini si kone shell shell (tazama ksh (1)). Vipengele tu vinavyoteuliwa na POSIX pamoja na upanuzi wa Berkeley wachache, vinaingizwa ndani ya shell hii. Tunatarajia kuzingatia POSIX kwa wakati 4.4 BSD inatolewa. Ukurasa wa mtu huyu sio lengo la kuwa mafunzo au maelezo kamili ya shell.

Maelezo ya jumla

Hifadhi ni amri ambayo inasoma mistari kutoka kwa faili au terminal, inawaelezea, na hufanya zaidi amri zingine. Ni programu inayoendesha wakati mtumiaji anaingia kwenye mfumo (ingawa mtumiaji anaweza kuchagua shell tofauti na amri chsh (1). Hifadhi hutumia lugha inayojenga udhibiti wa mtiririko, kituo kikubwa kinachotoa sifa mbalimbali kwa kuongeza uhifadhi wa data, pamoja na kujengwa katika uwezo wa historia na uhariri wa mstari. Inashirikisha vipengele vingi kusaidia mchanganyiko wa matumizi na ina faida kuwa lugha ya kutafsiri ni ya kawaida kwa matumizi maingiliano na yasiyo ya maingiliano (scripts shell). Hiyo ni, amri zinaweza kuingizwa moja kwa moja kwa shell inayoendeshwa au inaweza kuwekwa kwenye faili na faili inaweza kutekelezwa moja kwa moja na shell.

Kuomba

Ikiwa hakuna args wanapo na ikiwa pembejeo ya shell iko kushikamana na terminal (au kama i- bendera imewekwa), na chaguo- c haipo, shell inachukuliwa kuwa shell shell . Joka la maingiliano kwa ujumla linapelekezwa kabla ya kila amri na linashughulikia makosa ya programu na amri tofauti (kama ilivyoelezwa hapo chini). Wakati wa kwanza kuanzia, shell huchunguza hoja 0, na ikiwa inaanza na dash `- 'shell pia huchukuliwa kuwa shell ya kuingia. Hii kawaida hufanyika moja kwa moja na mfumo wakati mtumiaji anaingia kwanza. Hifadhi ya kuingilia kwanza inasoma amri kutoka kwa faili / nk / profile na .profile ikiwa zipo. Ikiwa variable ya mazingira ENV imewekwa kwenye kuingia kwenye shell, au imewekwa kwenye .profile ya shell ya kuingilia, shell inasomea ijayo amri kutoka kwenye faili iliyoitwa ENV Kwa hiyo, mtumiaji anapaswa kuweka amri ambazo zitafanyika tu kwenye Ingia muda katika faili ya .profile, na amri ambazo zinafanyika kwa kila shell ndani ya faili ya ENV . Ili kuweka variable ya ENV kwa faili fulani, weka mstari uliofuata kwenye .profile yako ya saraka yako ya nyumbani

ENV = $ HOME / .shinit; kuuza nje ENV

kubadilisha jina `` .shinit '' jina lolote unalotaka. Tangu faili ya ENV inasomewa kwa kila ombi la shell, ikiwa ni pamoja na scripts za shell na shells zisizoingiliana, dhana yafuatayo ni muhimu kwa kuzuia amri katika faili ya ENV kwa kuomba maingiliano. Weka amri ndani ya `` kesi '' na `` esac '' chini (amri hizi zinaelezwa baadaye):

$ $ katika * i *)

Amri # kwa matumizi maingiliano tu

...

esac

Ikiwa maagizo ya mstari wa amri badala ya chaguzi yameelezwa, kisha shell huchukua hoja ya kwanza kama jina la faili ambalo linasoma amri (script shell), na hoja zilizobaki zimewekwa kama vigezo vya mpangilio wa shell ($ 1 , $ 2, nk). Vinginevyo, shell husoma amri kutoka kwa pembejeo yake ya kawaida.

Orodha ya Upinzani wa Orodha

Chaguo zote za barua moja zina jina linaloweza kutumika kama hoja kwenye o - o . Jina la kuweka - hutolewa karibu na chaguo moja ya barua katika maelezo hapa chini. Kufafanua dash `` - '' inarudi chaguo, wakati wa kutumia `` + + '' inazima chaguo. Chaguzi zifuatazo zinaweza kuweka kutoka mstari wa amri au kwa kuweka (1) kujengwa (iliyoelezwa baadaye).

-a allexport

Tuma vigezo vyote vinavyotumiwa. (UNIMPULIZWA kwa 4.4alpha)

-c

Soma amri kutoka kwenye mstari wa amri. Hakuna amri itasomwa kutoka kwa pembejeo ya kawaida.

-C hakuna kitambaa

Usisome faili zilizopo na ``> '' (UNIMPLEMENTED for 4.4alpha)

- tumaini

Ikiwa haijaingiliana, toa mara moja ikiwa amri yoyote isiyojitokeza inashindwa. Hali ya kuondolewa kwa amri inachukuliwa kuwa imejaribiwa wazi ikiwa amri hutumiwa kudhibiti kama elif wakati au hadi au ikiwa amri ni mkono wa kushoto wa operator `` && '' au `` || '.

-g nogi

Zima upanuzi wa jina .

-n noexec

Ikiwa haiingiliani, soma amri lakini usiwafanyie. Hii ni muhimu kwa kuangalia syntax ya scripts shell.

-u majina

Andika ujumbe kwa kosa la kawaida wakati wa kujaribu kupanua variable ambayo haijawekwa, na ikiwa shell haiingiliani, toka mara moja. (UNIMPULIZWA kwa 4.4alpha)

-v verbose

Halafu inaandika pembejeo yake kwa kosa la kawaida kama linasoma. Muhimu kwa kufuta upya.

-x xtrace

Andika kila amri kwa kosa la kawaida (lililoandaliwa na `+ 'kabla ya kutekelezwa.).

-q utulivu wa kimya

Ikiwa vifungo v- au- x vimewekwa, msiiate wakati wa kusoma faili za uanzishaji, haya ni / nk / profile .profile na faili iliyochaguliwa na variable ya mazingira ya ENV .

-Napuuza

Puuza EOF kutoka kwa pembejeo wakati unaingiliana.

-i maingiliano

Weka shell ili kuingilia kati.

-m kufuatilia

Piga udhibiti wa kazi (kuweka moja kwa moja wakati wa maingiliano).

-s stdin

Soma amri kutoka kwa pembejeo ya kawaida (kuweka moja kwa moja ikiwa hakuna hoja za faili zilizopo). Chaguo hili haliathiri wakati wa kuweka baada ya shell tayari kuanza kuendesha (yaani kwa kuweka (1)).

-V vi

Wezesha mhariri wa mstari wa amri (1) uliojengwa (huzima - E ikiwa imewekwa).

-E emacs

Wezesha mhariri wa mstari wa amri (1) uliojengwa (huzima - V ikiwa imewekwa).

-b wajulishe

Wezesha taarifa ya ufanisi ya kukamilisha kazi ya nyuma. (UNIMPULIZWA kwa 4.4alpha)

Uundo wa Lexical

Hifadhi inasoma pembejeo kwa mstari wa mistari kutoka kwa faili na kuifungua kwa maneno kwenye safu ya safu (safu na tabo), na katika utaratibu fulani wa wahusika ambao ni maalum kwa shell inayoitwa `` waendeshaji '' Kuna aina mbili za waendeshaji: waendeshaji wa kudhibiti na waendeshaji wa redirection (maana yao inajadiliwa baadaye). Kufuatia ni orodha ya waendeshaji:

"Waendeshaji wa kudhibiti:"

& && (); ;; |. | ||

"Opereta ya kurekebisha:"

<>> | << >> <&> & << - <>

Inukuu

Kusukuma hutumiwa kuondoa maana maalum ya wahusika fulani au maneno kwenye shell, kama vile waendeshaji, whitespace, au maneno. Kuna aina tatu za kupiga kura: inalingana na quotes moja, yanayofanana na quotes mbili, na kurudi nyuma.

Kurudi nyuma

Kudhibiti nyuma kunahifadhi maana halisi ya tabia yafuatayo, isipokuwa ya Aq mpya. Upungufu wa nyuma kabla ya upya wa Aq unachukuliwa kama mwendelezo wa mstari.

Quotes Single

Majina ya kuingiza katika quotes moja huhifadhi maana halisi ya wahusika wote (isipokuwa nukuu moja, na hivyo iwezekanavyo kuweka vigezo moja kwenye kamba moja iliyokatwa).

Quotes mbili

Majina ya kuingiza ndani ya quotes mara mbili huhifadhi maana halisi ya wahusika wote isipokuwa dollarsign ($) backquote (`) na kurudi nyuma (\) Kurudi nyuma ndani ya quotes mara mbili ni kihistoria, na hutumiwa kutaja tu wahusika zifuatazo:

$ `\

Vinginevyo inabaki halisi.

Maneno yaliyohifadhiwa

Maneno yaliyohifadhiwa ni maneno yenye maana maalum kwa shell na ni kutambuliwa mwanzoni mwa mstari na baada ya operator wa kudhibiti. Yafuatayo ni maneno yaliyohifadhiwa:

! Taa Ta Ta wakati wa Ta

Hakika Ta kwa Ta basi Ta {Ta}

Je! Ufanyie Taa hadi Ta kama Ta esac

Maana yao yanajadiliwa baadaye.

Vipengee

Alias ​​ni jina na thamani inayoambatana iliyowekwa kwa kutumia amri (1) amri iliyojengwa. Wakati wowote neno lililohifadhiwa linaweza kutokea (angalia hapo juu), na baada ya kuangalia kwa maneno yaliyohifadhiwa, shell huchunguza neno ili uone kama inafanana na vingine. Ikiwa inafanya, huiweka katika mkondo wa pembejeo na thamani yake. Kwa mfano, ikiwa kuna safu inayoitwa `` lf '' na thamani `` ls -F '' kisha pembejeo:

ingekuwa

ls -F foobar

Vipengee vinaweza kutoa njia rahisi kwa watumiaji wa ujinga wa kuunda maagizo ya amri bila kujifunza jinsi ya kuunda kazi na hoja. Wanaweza pia kutumiwa kuunda msimbo usio wazi wa kificho. Matumizi haya yamekatishwa.

Maagizo

Halafu hutafsiri maneno ambayo inasoma kwa mujibu wa lugha, ambayo ni nje ya upeo wa ukurasa huu wa mtu (angalia BNF katika hati ya POSIX 1003.2). Kwa hakika, mstari unasoma na kama neno la kwanza la mstari (au baada ya operator wa kudhibiti) si neno lililohifadhiwa, basi shell imegundua amri rahisi. Vinginevyo, amri tata au ujenzi mwingine maalum inaweza kuwa kutambuliwa.

Maagizo rahisi

Ikiwa amri rahisi imetambuliwa, shell hufanya vitendo vifuatavyo:

  1. Maneno inayoongoza ya fomu `` jina = thamani '' yameondolewa na kupewa kwa mazingira ya amri rahisi. Wafanyakazi wa kurejesha na hoja zao (kama ilivyoelezwa hapo chini) wameondolewa na kuokolewa kwa ajili ya usindikaji.
  2. Maneno iliyobaki yanapanuliwa kama ilivyoelezwa katika sehemu inayoitwa `` Expansions '' na neno la kwanza lililobaki linachukuliwa kuwa jina la amri na amri iko. Maneno iliyobaki yanaonekana kuwa hoja za amri. Ikiwa hakuna jina la amri ilisababisha, basi "` = jina = thamani '' kazi zinazojitokeza katika kipengee 1 huathiri shell ya sasa.
  3. Marekebisho hufanyika kama ilivyoelezwa katika sehemu inayofuata.

Marekebisho

Marekebisho hutumiwa kubadilisha ambapo amri inasoma pembejeo yake au kutuma matokeo yake. Kwa ujumla, marekebisho ya wazi, karibu, au kurudia kumbukumbu iliyopo kwa faili. Faili ya jumla ya kutumika kwa ajili ya redirection ni:

[n] redir-op faili

ambapo redir-op ni mojawapo ya waendeshaji wa redirection iliyotajwa hapo awali. Kufuatia ni orodha ya marekebisho iwezekanavyo. Bq n ni idadi ya hiari, kama `` 3 '(si `Bq 3' ambayo inahusu faili ya faili.

[n]> faili

Rekebisha pato la kawaida (au n) kufungua.

[n]> | faili

Same, lakini hupunguza chaguo- C .

[n] >> faili

Pendekeza pato la kawaida (au n) kufungua.

[n]

Rekebisha pembejeo ya kawaida (au n) kutoka kwa faili.

[n1] <& n2

Pembeza kiwango cha kawaida (au n1) kutoka kwa descriptor faili n2.

[n] <& -

Funga pembejeo ya kawaida (au n).

[n1]> & n2

Duplicate standard pato (au n1) kutoka n2.

[n]> &

Funga pato la kawaida (au n).

[n] <> faili

Fungua faili ya kusoma na kuandika kwenye pembejeo ya kawaida (au n).

Redirection ifuatayo mara nyingi huitwa `` hapa-hati ''

[n] << delimiter

hapa-doc-text ...

delimiter

Nakala zote juu ya mistari mfululizo hadi kwenye delimiter imeokolewa mbali na hupatikana kwa amri juu ya pembejeo ya kawaida, au maelezo ya faili n kama imeelezwa. Ikiwa mchezaji kama ilivyoelezwa kwenye mstari wa kwanza amechukuliwa, basi maandishi ya hapa yanapatiwa halisi, vinginevyo maandiko yanawekwa kwa upanuzi wa parameter, badala ya amri, na upanuzi wa hesabu (kama ilivyoelezwa katika sehemu ya `` Expansions) ' 'Ikiwa operator ni `` << -' 'badala ya `` <<' 'kisha vichwa vya kuongoza katika maandishi ya hapa-ni vimeondolewa.

Utafutaji na Utekelezaji

Kuna aina tatu za amri: kazi za shell, amri za kujengwa, na mipango ya kawaida - na amri hutafutwa (kwa jina) kwa utaratibu huo. Kila mmoja huuawa kwa njia tofauti.

Wakati kazi ya shell inafanyika, vigezo vyote vya mpangilio wa kifungo (isipokuwa $ 0, ambazo bado hazibadilishwa) vinawekwa kwenye hoja za kazi ya shell. Vigezo vinavyowekwa wazi katika mazingira ya amri (kwa kuwaweka kazi kabla ya jina la kazi) hufanyika ndani ya kazi na huwekwa kwenye maadili yaliyotolewa. Kisha amri iliyotolewa katika ufafanuzi wa kazi inatekelezwa. Vigezo vya mpangilio vinarejeshwa kwa maadili yao ya awali wakati amri ikamilika. Haya yote hutokea ndani ya shell ya sasa.

Kujengwa kwa Shell hufanyika ndani ya shell, bila kuzalisha mchakato mpya.

Vinginevyo, ikiwa jina la amri hailingani na kazi au kujengwa, amri hutafuta kama mpango wa kawaida katika mfumo wa faili (kama ilivyoelezwa katika sehemu inayofuata). Wakati mpango wa kawaida unafanywa, shell huendesha programu, kupitisha hoja na mazingira kwenye programu. Ikiwa programu sio faili ya kawaida inayoweza kutekelezwa (yaani, ikiwa haijaanza na "namba ya uchawi" ambayo uwakilishi wa ASCII ni "#!", Hivyo execve (2) anarudi Er ENOEXEC kisha) shell itafasiri programu katika subshell. Hifadhi ya mtoto itajiweka tena kwenye kesi hiyo, ili athari itakuwa kama shell mpya ilipoulizwa kushughulikia script shell ya ad-hoc, isipokuwa kuwa mahali pa amri zilizopotea ziko kwenye shell ya mzazi zitakumbukwa na mtoto.

Kumbuka kwamba matoleo ya awali ya hati hii na msimbo wa chanzo yenyewe hupotosha na kwa kawaida hutaja script ya shell bila idadi ya uchawi kama "utaratibu wa shell".

Tafuta njia

Unapopata amri, shell inaonekana kwanza kuona kama ina kazi ya shell kwa jina hilo. Kisha inaonekana kwa amri iliyojengwa kwa jina hilo. Ikiwa amri iliyojengwa haipatikani, moja ya mambo mawili yanatokea:

  1. Majina ya amri yaliyo na slash yanafanywa tu bila kufanya utafutaji wowote.
  2. Hifadhi hutafuta kila kuingia kwa PATH kwa amri. Thamani ya kutofautiana kwa PATH inapaswa kuwa mfululizo wa maandishi yaliyotengwa na koloni. Kila kuingia kuna jina la saraka. Saraka ya sasa inaweza kuonyeshwa wazi kwa jina la saraka tupu, au kwa wazi kwa kipindi kimoja.

Amri ya Hali ya Kuondoka

Kila amri ina hali ya kuondoka ambayo inaweza kushawishi tabia ya amri nyingine za shell. Nadharia ni kwamba amri inatoka kwa sifuri kwa kawaida au mafanikio, na sio sifuri kwa kushindwa, kosa, au dalili ya uwongo. Ukurasa wa mtu kwa kila amri inapaswa kuonyesha namba tofauti za kutosha na kile wanachomaanisha. Zaidi ya hayo, amri zilizojengwa hurudi nambari za kuondoka, kama vile kazi ya shell iliyofanywa.

Maagizo mazuri

Amri kamili ni mchanganyiko wa amri rahisi na waendeshaji wa kudhibiti au maneno yaliyohifadhiwa, pamoja na kujenga amri kubwa tata. Kwa ujumla, amri ni moja ya yafuatayo:

  • amri rahisi
  • bomba
  • orodha au orodha ya kiwanja
  • amri ya kiwanja
  • ufafanuzi wa kazi

Isipokuwa kama ilivyoelezwa vinginevyo, hali ya kutoka kwa amri ni ile ya amri ya mwisho ya mwisho inayotumiwa na amri.

Mabomba

Bomba ni mlolongo wa amri moja au zaidi iliyotengwa na operator wa kudhibiti |. Pato la kawaida la yote lakini amri ya mwisho imeshikamana na pembejeo ya kawaida ya amri ijayo. Pato la kawaida la amri ya mwisho imetokana na shell, kama kawaida.

Fomu ya bomba ni:

[!] amri1 [| amri2 ...]

Pato la kawaida la amri 1 limeunganishwa na pembejeo ya kawaida ya amri2. Pembejeo ya kawaida, pato la kawaida, au amri zote zinachukuliwa kuwa zimepewa na bomba kabla ya redirection yoyote iliyoelezwa na waendeshaji wa redirection ambao ni sehemu ya amri.

Ikiwa bomba haijali nyuma (kujadiliwa baadaye), shell inasubiri kwa amri zote kukamilika.

Ikiwa neno limehifadhiwa! haitangui bomba, hali ya kuondoka ni hali ya kuondoka ya amri ya mwisho iliyotajwa kwenye bomba. Vinginevyo, hali ya kuondoka ni mantiki NOT ya hali ya kutoka kwa amri ya mwisho. Hiyo ni, ikiwa amri ya mwisho inarudi sifuri, hali ya kuondoka ni 1; ikiwa amri ya mwisho inarudi zaidi kuliko sifuri, hali ya kuondoka ni sifuri.

Kwa sababu kazi ya bomba ya pembejeo ya kawaida au pato la kawaida au zote mbili hufanyika kabla ya kurejeshwa, inaweza kubadilishwa kwa kurejeshwa tena. Kwa mfano:

$ command1 2> & 1 | amri2

hutuma pato zote na kiwango cha kawaida cha amri1 kwa pembejeo ya kawaida ya amri2.

A; au terminator husababisha orodha iliyopita NA-OR (iliyoelezwa ijayo) kutekelezwa kwa usawa; & kwa sababu ya utekelezaji wa orodha ya AND-OR iliyotangulia.

Kumbuka kwamba tofauti na vifuko vingine, kila mchakato katika bomba ni mtoto wa shell inayotaka (isipokuwa ni kujengwa kwa shell, katika hali ambayo inafanya katika shell ya sasa - lakini athari yoyote iliyo na mazingira inafuta).

Maagizo ya Mazingira -

Ikiwa amri imekamilika na ampersand ya kudhibiti (&), shell hufanya amri asynchronously - yaani, shell haisubiri amri ya kumaliza kabla ya kutekeleza amri ijayo.

Fomu ya kuendesha amri katika historia ni:

amri1 & [amri2 & ...]

Ikiwa shell haiingiliani, pembejeo ya kawaida ya amri ya asynchronous imewekwa kwenye / dev / null

Orodha - Kuzungumza Kwa ujumla

Orodha ni mlolongo wa zero au amri zaidi iliyojitenga na vifungu vipya, semicolons, au ampersands, na kwa hiari imekamilika na mojawapo ya wahusika hawa watatu. Amri katika orodha yanatekelezwa kwa amri zilizoandikwa. Ikiwa amri inatimizwa na ampersand, shell huanza amri na mara moja kuendelea kwenye amri ijayo; vinginevyo unasubiri amri ya kusitisha kabla ya kuendelea hadi ijayo.

Waendeshaji Orodha ya Mzunguko mfupi

`&& '' na` `|| '' ni waendeshaji wa orodha ya OR-OR. `` && '' hufanya amri ya kwanza, na kisha kutekeleza amri ya pili iff hali ya kutoka kwa amri ya kwanza ni sifuri. `` || '' ni sawa, lakini hufanya amri ya pili iff hali ya kuondoka ya amri ya kwanza ni ya nonzero. `&& '' na` `|| '' wote wana kipaumbele sawa.

Ujenzi wa Udhibiti wa Mtiririko - ikiwa, wakati, kwa, kesi

Kipindi cha amri ikiwa ni

kama orodha
kisha weka
Orodha ya Elif
kisha tazama] ...
[orodha nyingine]
fi

Kipindi cha amri ya wakati ni

wakati orodha
fanya orodha
kufanyika

Orodha hizi mbili zinatekelezwa mara kwa mara wakati hali ya kuondoka ya orodha ya kwanza ni sifuri. Mpaka mpaka amri ni sawa, lakini ina neno mpaka wakati wa wakati, ambayo husababisha kurudia mpaka hali ya kutoka kwa orodha ya kwanza ni sifuri.

Kipindi cha amri ni

kwa kutofautiana kwa neno ...
fanya orodha
kufanyika

Maneno hupanuliwa, na kisha orodha inatibiwa mara kwa mara na kuweka tofauti kwa kila neno kwa upande wake. kufanya na kufanywa inaweza kubadilishwa na `` {'' na ``} ''

Syntax ya kuvunja na kuendelea amri ni

kuvunja [num]
endelea [num]

Kuvunja kumalizia namba ya ndani kwa wakati au wakati wa matanzi. Endelea inaendelea na iteration inayofuata ya kitanzi cha ndani. Hizi zinatekelezwa kama amri zilizojengwa.

Kielelezo cha amri ya kesi ni

neno la neno ndani
orodha) ;;
...
esac

Mfano unaweza kweli kuwa mwelekeo mmoja au zaidi (angalia Sifa za Shell zilizoelezwa baadaye), zimejitenga na wahusika `` ''.

Maagizo ya Kundi Pamoja

Maagizo yanaweza kuundwa kwa kuandika ama

(orodha)

au

{orodha;

Ya kwanza ya haya hufanya amri katika somo. Amri zilizojengwa kwenye orodha (orodha) hazitaathiri shell ya sasa. Fomu ya pili haifai kibao kingine hivyo ni ufanisi kidogo. Kuunganisha amri pamoja kwa njia hii inakuwezesha kurejea pato zao kama ingawa ni mpango mmoja:

{printf hello; printf dunia \ n ";}> salamu

Kazi

Kipindi cha ufafanuzi wa kazi ni

jina () amri

Ufafanuzi wa kazi ni tamko la kutekeleza; wakati wa kutekelezwa huingiza kazi inayoitwa jina na inarudi hali ya kutoka kwa sifuri. Amri ni kawaida orodha iliyofungwa kati ya `` {'' na ``} ''

Vigezo vinaweza kutangaza kuwa za mitaa kwa kazi kwa kutumia amri ya ndani. Hii inapaswa kuonekana kama kauli ya kwanza ya kazi, na syntax ni

mitaa [variable | -] ...

Mitaa inatekelezwa kama amri iliyojengwa.

Wakati kutofautiana kunapofanywa ndani, hurithi thamani ya awali na kusafirishwa na bendera za kutafsiri kutoka kwa variable na jina sawa katika upeo unaozunguka, ikiwa kuna moja. Vinginevyo, kutofautiana kwa awali hakutenganishwa. Hifadhi inatumia matumizi ya nguvu, ili iweze kufanya eneo la variable x kufanya kazi f, ambalo huita wito kazi, maelekezo ya variable x yaliyotengenezwa ndani ya g yatarejelea variable ya kutangaza x ndani ya f, si kwa variable ya kimataifa inayoitwa x .

Kipimo cha pekee cha pekee ambacho kinaweza kufanywa ndani ni '`-' 'Kufanya` `-' 'ndani chaguzi yoyote ya shell inayobadilishwa kupitia amri iliyowekwa ndani ya kazi ili kurejeshwa kwa maadili yao ya awali wakati kazi inarudi.

Sura ya kurudi amri ni

kurudi [exitstatus

Inakamilisha kazi ya sasa ya kutekeleza. Kurudi kunatekelezwa kama amri iliyojengwa.

Vigezo na Parameters

Hifadhi inao seti ya vigezo. Kipengele kinachojulikana kwa jina kinachojulikana kuwa ni tofauti. Wakati wa kuanza, shell hugeuka vigezo vyote vya mazingira katika vigezo vya shell. Vigezo vipya vinaweza kuweka kwa kutumia fomu

jina = thamani

Vigezo vinavyotumiwa na mtumiaji lazima iwe na jina linalojumuisha tu ya alfabeti, nambari, na zinazotajwa - ambayo ya kwanza haipaswi kuwa nambari. Kipengele kinaweza pia kutajwa na idadi au tabia maalum kama ilivyoelezwa hapa chini.

Vipengele vya Msimamo

Kipimo cha mpangilio ni parameter iliyoashiria namba (n> 0). Hifadhi huweka hivi awali kwa maadili ya hoja za mstari wa amri zinazofuata jina la script ya shell. Seti (1) iliyojengwa inaweza pia kutumika kuweka au kurekebisha tena.

Parameters maalum

Kipimo maalum ni parameter iliyoashiria mojawapo ya wahusika maalum. Thamani ya parameter imeorodheshwa karibu na tabia yake.

*

Nenda kwa vigezo vya mpito, kuanzia moja. Wakati upanuzi hutokea ndani ya kamba iliyotajwa mara mbili huongeza kwa shamba moja na thamani ya kila parameter iliyotengwa na tabia ya kwanza ya kutofautiana kwa IFS , au kwa ikiwa IFS imefungua.

@

Nenda kwa vigezo vya mpito, kuanzia moja. Wakati upanuzi unatokea ndani ya quotes mbili, kila parameter ya mpangilio huongeza kama hoja tofauti. Ikiwa hakuna vigezo vya mpangilio, upanuzi wa @ huzalisha hoja za sifuri, hata wakati @ imechukuliwa mara mbili. Nini hii inamaanisha kimsingi, kwa mfano, ni kama $ 1 ni `` abc '' na $ 2 ni `` def ghi '' kisha Qq $ @ huongeza kwa hoja mbili:

abc def ghi

#

Tangaza kwa idadi ya vigezo vya mpito.

?

Nenda kwa hali ya kutoka kwa bomba la hivi karibuni.

- (Hyphen.)

Panua kwa bendera ya chaguo la sasa (majina ya chaguo moja ya barua iliyopangwa kwenye kamba) kama ilivyoelezwa juu ya kuomba, kwa amri iliyowekwa kujengwa, au kwa kikamilifu na shell.

$

Nenda kwa kitambulisho cha mchakato wa shell inayotakiwa. Subshell inaendelea thamani sawa ya $ kama mzazi wake.

!

Nenda kwa kitambulisho cha mchakato wa amri ya asili ya hivi karibuni iliyotokana na shell ya sasa. Kwa bomba, ID ya mchakato ni ile ya amri ya mwisho katika bomba.

0 (Zero.)

Tangaza kwa jina la script shell au shell.

Ufafanuzi wa Neno

Kifungu hiki kinaeleza upanuzi mbalimbali unaofanywa kwa maneno. Sio kila kufanyiwa kazi kwa kila neno, kama ilivyoelezwa baadaye.

Upanuzi wa Tilde, upanuzi wa parameter, uingizaji wa amri, upanuzi wa hesabu, na uondoaji wa quote ambao hutokea ndani ya neno moja kupanua kwenye shamba moja. Ni kupanua shamba au upanuzi wa jina ambalo linaweza kuunda mashamba mengi kutoka kwa neno moja. Tofauti moja kwa sheria hii ni upanuzi wa parameter maalum @ ndani ya quotes mbili, kama ilivyoelezwa hapo juu.

Utaratibu wa upanuzi wa neno ni:

  1. Upanuzi wa Tilde, Upanuzi wa Parameter, Kuweka amri, Upanuzi wa Arithmetic (haya yote hutokea kwa wakati mmoja).
  2. Kupiga Shamba hufanyika kwenye mashamba yanayotokana na hatua (1) isipokuwa ubadilishaji wa IFS ni null.
  3. Upanuzi wa jina (isipokuwa kuweka - f inafanya kazi).
  4. Kuondoa Quote.

Tabia ya $ hutumiwa kuanzisha upanuzi wa parameter, badala ya amri, au tathmini ya hesabu.

Upanuzi wa Tilde (kubadilisha nafasi ya saraka ya mtumiaji & # 39; s)

Neno linalotokana na tabia isiyojumuishwa ya tilde (~) inakabiliwa na kuongeza upanuzi. Wahusika wote hadi kufungwa (/) au mwisho wa neno hutambuliwa kama jina la mtumiaji na hubadilishwa na saraka ya nyumbani ya mtumiaji. Ikiwa jina la mtumiaji linakosekana (kama katika ~ / foobar) kielelezo kinachukuliwa na thamani ya variable ya HOME (directory ya sasa ya mtumiaji wa sasa).

Upanuzi wa Kipimo

Fomu ya upanuzi wa parameter ni kama ifuatavyo:

ambapo kujieleza kuna wahusika wote mpaka vinavyolingana ``} '' Yoyote ``} '' imekimbia kwa kurudi nyuma au katika kamba iliyotajwa, na wahusika katika upanuzi wa hesabu zilizoingia, uingizaji wa amri, na mabadiliko ya kutofautiana, hazizingatiwi vinavyolingana ``} ''

Fomu rahisi zaidi ya upanuzi wa parameter ni:

Thamani, ikiwa ni yoyote, ya parameter inabadilishwa.

Jina la parameter au ishara linaweza kuingizwa katika bunduki, ambazo ni hiari isipokuwa kwa vigezo vya mpito na tarakimu zaidi ya moja au wakati parameter inakufuatwa na tabia ambayo inaweza kutafsiriwa kama sehemu ya jina. Ikiwa upanuzi wa parameter hutokea ndani ya quotes mbili:

  1. Upanuzi wa jina haukufanyika kwenye matokeo ya upanuzi.
  2. Ugawanyiko wa shamba haufanyike kwenye matokeo ya upanuzi, isipokuwa @.

Kwa kuongeza, upanuzi wa parameter unaweza kubadilishwa kwa kutumia mojawapo ya fomu zifuatazo.

Tumia Maadili ya Maadili. Ikiwa parameter haijafunguliwa au isiyo ya kawaida, upanuzi wa neno hubadilishwa; Vinginevyo, thamani ya parameter inabadilishwa.

Weka Maadili ya Default. Ikiwa parameter haijafunguliwa au isiyojificha, upanuzi wa neno hutolewa kwa parameter. Katika hali zote, thamani ya mwisho ya parameter inabadilishwa. Vigezo tu, si vigezo vya mpito au vigezo maalum, vinaweza kupewa kwa njia hii.

Onyesha Hitilafu ikiwa Null au Unset. Ikiwa parameter haijapangiliwa au haijulikani, upanuzi wa neno (au ujumbe unaoashiria haufunguki ikiwa neno halikuachiliwa) imeandikwa kwa kosa la kawaida na shell hutoka na hali ya noniti exit. Vinginevyo, thamani ya parameter inabadilishwa. Hifadhi ya maingiliano haipaswi kuondoka.

Tumia Thamani Mbadala. Ikiwa parameter haijafunguliwa au haijulikani, null haibadilishwa; vinginevyo, upanuzi wa neno hubadilishwa.

Katika kupanua kwa parameter umeonyeshwa hapo awali, matumizi ya koloni katika matokeo ya muundo katika mtihani kwa parameter ambayo haijatengenezwa au isiyo ya kawaida; kusitishwa kwa matokeo ya koloni katika mtihani kwa parameter ambayo haijatayarishwa.

Urefu wa Kamba. Urefu wa wahusika wa thamani ya parameter.

Aina zifuatazo nne za kupanua parameter hutoa kwa usindikaji wa chini. Katika kila hali, muundo unaofanana na ulinganisho (angalia Sampuli za Shell), badala ya kutaja mara kwa mara, hutumiwa kuchunguza ruwaza. Ikiwa parameter ni * au @, matokeo ya upanuzi haijulikani. Kuingiza kamba kamili ya kupanua parameter katika quotes mbili haifai aina nne zifuatazo za wahusika wa mfano ambazo zinasukuliwa, wakati wahusika wa quoting ndani ya braces ina athari hii.

Ondoa Suffix ndogo kabisa. Neno limepanuliwa ili kuzalisha muundo. Upanuzi wa parameter kisha husababisha kwa parameter, na sehemu ndogo zaidi ya suala linalolingana na muundo ulifutwa.

Ondoa Mfano mkubwa wa Suffix. Neno limepanuliwa ili kuzalisha muundo. Upanuzi wa parameter kisha husababisha parameter, na sehemu kubwa ya suffix inayofanana na muundo imefutwa.

Ondoa Kipengee cha Kidogo cha Chini. Neno limepanuliwa ili kuzalisha muundo. Upanuzi wa parameter kisha husababisha parameter, na sehemu ndogo zaidi ya kiambishi awali inalinganishwa na muundo ulifutwa.

Ondoa Kiambatisho Kikubwa cha Mfano. Neno limepanuliwa ili kuzalisha muundo. Upanuzi wa parameter kisha husababisha parameter, na sehemu kubwa ya kiambishi awali inalingana na muundo ulifutwa.

Amri Kuingia

Amri badala inaruhusu pato la amri liweke nafasi badala ya jina la amri yenyewe. Amri badala hutokea wakati amri imefungwa kama ifuatavyo:

$ (amri)

au Po `` backquoted '' toleo la Pc:

`amri`

Hifadhi huongeza nafasi ya amri kwa kutekeleza amri katika mazingira ya chini na kubadilisha nafasi ya amri na pato la kawaida la amri, kuondoa ufuatiliaji wa moja au zaidi s mwisho wa kubadilisha. (Iliyotungwa s kabla ya mwisho wa pato haiondolewa, hata hivyo, wakati wa kugawanyika kwa shamba, inaweza kutafsiriwa kwenye s, kulingana na thamani ya IFS na kupiga kura ambayo inafanya kazi.)

Upanuzi wa Arithmetic

Upanuzi wa Arithmeti hutoa utaratibu wa kutathmini kujieleza kwa hesabu na kubadili thamani yake. Fomu ya upanuzi wa hesabu ni kama ifuatavyo:

$ ((kujieleza)

Maneno hayo yanatendewa kama yalivyo katika quotes mbili, isipokuwa kwamba quote mara mbili ndani ya kujieleza si kutibiwa maalum. Hifadhi hupanua ishara zote katika maelezo kwa upanuzi wa parameter, badala ya amri, na kuondoa kuondolewa.

Kisha, shell huchukua hii kama kujieleza hesabu na inabadilisha thamani ya maneno.

White Space Splitting (Field Splitting)

Baada ya upanuzi wa parameter, ubadilishaji amri, na upanuzi wa hesabu shell huchunguza matokeo ya kuongeza na mbadala ambazo hazikutokea katika quotes mbili za shamba kutengana na mashamba mengi yanaweza kusababisha.

Hifadhi huchukua kila tabia ya IFS kama delimiter na kutumia watangazaji kugawa matokeo ya kupanua parameter na amri badala katika maeneo.

Upanuzi wa jina la jina (Jina la Uzazi wa Jina)

Isipokuwa fani ya f - imewekwa, kizazi cha jina la faili kinafanywa baada ya kugawanyika kwa neno kukamilika. Neno lolote linaonekana kama mfululizo wa mwelekeo, ikitenganishwa na slashes. Mchakato wa upanuzi hubadilisha neno na majina ya faili zilizopo ambazo majina yanaweza kuundwa kwa kuchukua nafasi ya kila muundo na kamba inayofanana na muundo maalum. Kuna vikwazo viwili kwa hili: kwanza, muundo hauwezi kufanana na kamba iliyo na slash, na pili, muundo hauwezi kufanana na kamba kuanzia kipindi isipokuwa tabia ya kwanza ya muundo ni kipindi. Sehemu inayofuata inaelezea ruwaza zilizozotumiwa kwa Upanuzi wa Jina la Pili na amri (1) ya amri.

Sifa za Shell

Mfano una wahusika wa kawaida, ambao hufananisha wenyewe, na wahusika. Meta-wahusika ni ``! '' `` * '' ``? '' Na `` ['' Wahusika hawa hupoteza maana zao maalum kama wanasukuliwa. Wakati amri au ubadilishaji wa kutofautiana unafanywa na ishara ya dola au vyeti vya nyuma hazikutajwa mara mbili, thamani ya kutofautiana au pato la amri hupatiwa kwa wahusika hawa na hugeuzwa kuwa wahusika.

Asteriski (`` '' ') inalingana na kamba yoyote ya wahusika. Ishara ya swali inalingana na tabia yoyote. Bandika la kushoto (`` ['') linaanzisha darasa la tabia. Mwisho wa darasa la tabia unaonyeshwa na (`` `'' ') ikiwa` `' '' haipo basi` `['' inafanana` `['' badala ya kuanzisha darasa la tabia. Darasa la tabia linalingana na wahusika wowote kati ya mabano ya mraba. Wahusika wengi wanaweza kuelezwa kwa kutumia ishara ndogo. Darasa la tabia linaweza kuongezewa kwa kufanya alama ya kufurahisha tabia ya kwanza ya darasa la tabia.

Ili ni pamoja na ``] '' katika darasa la tabia, fanya kuwa tabia ya kwanza iliyoorodheshwa (baada ya ``! '' Ikiwa ipo). Ili ni pamoja na ishara ndogo, fanya kuwa tabia ya kwanza au ya mwisho iliyoorodheshwa

Kujengwa

Sehemu hii inaorodhesha amri zilizojengwa ambazo zimejengwa kwa sababu zinahitaji kufanya kazi ambayo haiwezi kufanywa kwa mchakato tofauti. Mbali na hayo, kuna amri nyingine kadhaa ambazo zinaweza kujengwa kwa ufanisi (kwa mfano echo 1).

:

Amri ya null ambayo inarudi thamani ya kutolewa 0 (kweli).

. faili

Amri katika faili maalum husoma na kutekelezwa na shell.

alias [ jina [ = kamba ... ]]

Ikiwa jina = kamba ni maalum, shell inafafanua jina la alias na kamba ya thamani Kama jina tu linalothibitishwa, thamani ya jina la alias linachapishwa. Kwa hoja hakuna, alias kujengwa inaweka majina na maadili ya aliases zote zilizofafanuliwa (angalia ulias)

bg [ kazi] ...

Endelea ajira maalum (au kazi ya sasa ikiwa hakuna ajira zinazotolewa) nyuma.

amri ya amri ...

Fanya amri iliyowekwa iliyowekwa. (Hii ni muhimu wakati una kazi ya shell na jina moja kama amri iliyojengwa.)

cd [ directory ]

Badilisha kwenye saraka maalum (default $ HOME) Ikiwa kuingia kwa CDPATH inaonekana katika mazingira ya amri ya cd au variable ya CDPATH imewekwa na jina la saraka halianza na slash, basi vichujio vilivyoorodheshwa kwenye CDPATH vitafutwa kwa saraka maalum. Fomu ya CDPATH ni sawa na ile ya PATH Katika shell ya maingiliano, amri ya cd itakuwa kuchapisha jina la saraka ambayo imebadilisha kwa kweli ikiwa hii ni tofauti na jina ambalo mtumiaji alitoa. Hizi zinaweza kuwa tofauti au kwa sababu njia ya CDPATH ilitumiwa au kwa sababu kiungo cha mfano kilivuka .

kamba eval ...

Tambulisha hoja zote na nafasi. Kisha upya upya na kutekeleza amri.

exec [ amri hoja ... ]

Isipokuwa amri imekoma, mchakato wa shell hubadilishwa na mpango maalum (ambao lazima uwe programu halisi, sio kujengwa kwa shell au kazi). Ufafanuzi wowote kwenye amri ya kutekelezwa ni alama ya kudumu, ili waweze kufutwa wakati amri ya kutekeleza ikamilika.

toka [ exitstatus ]

Futa mchakato wa shell. Ikiwa exitstatus inapewa hutumiwa kama hali ya kutoka kwa shell; vinginevyo hali ya kutoka kwa amri iliyotangulia inatumiwa.

jina la nje ...

nje -p

Majina maalum yanatumwa ili waweze kuonekana katika mazingira ya amri zafuatayo. Njia pekee ya kutenganisha kutofautiana ni kuiondoa. Hifadhi inaruhusu thamani ya kutofautiana kuwekewa kwa wakati mmoja ni nje kwa kuandika

jina la nje = thamani

Kwa hoja hakuna amri ya nje ya nje inataja majina ya vigezo vyote vya nje. Kwa chaguo- p iliyochaguliwa pato itapangiliwa vizuri kwa matumizi yasiyo ya maingiliano.

Fc [- e mhariri ] [ kwanza [ mwisho ]

fc -l [- nr ] [ kwanza [ mwisho ]

fc -s [ zamani = mpya ] [ kwanza ]

Orodha ya fc iliyojengwa, au kuhariri na kutekeleza tena, amri zilizoingia awali kwenye shell iliyoingiliana.

-mhariri

Tumia mhariri aitwaye na mhariri ili uhariri amri. Kichwa cha mhariri ni jina la amri, chini ya utafutaji kupitia variable ya PATH . Thamani katika variable FCEDIT hutumiwa kama default wakati- e si maalum. Ikiwa FCEDIT haifai au haifai , thamani ya variable ya EDITOR hutumiwa. Ikiwa EDITOR haipatikani au haifai, ed (1) hutumiwa kama mhariri.

-l (ell)

Weka amri badala ya kuitisha mhariri juu yao. Amri imeandikwa katika mlolongo unaonyeshwa na operesheni ya kwanza na ya mwisho, kama ilivyoathirika na - r na kila amri iliyotanguliwa na nambari ya amri.

-n

Futa namba za amri wakati wa orodha na -l.

-r

Rekebisha utaratibu wa amri iliyoorodheshwa (na - l au iliyohaririwa (isiyo na l - wala )

-s

Tengeneza amri bila kuidhinisha mhariri.

kwanza

mwisho

Chagua amri za kuorodhesha au kuhariri. Idadi ya amri za awali ambazo zinaweza kupatikana zimewekwa na thamani ya mabadiliko ya HISTSIZE . Thamani ya kwanza au ya mwisho au yote ni moja ya yafuatayo:

[+] nambari

Nambari nzuri inayowakilisha idadi ya amri; Nambari za amri zinaweza kuonyeshwa na chaguo- l .

-nogo

Nambari mbaya ya decimal inayowakilisha amri ambayo ilifanyika idadi ya amri hapo awali. Kwa mfano, -1 ni amri ya awali iliyotangulia.

kamba

Kamba inayoonyesha amri iliyoingia hivi karibuni ambayo huanza na kamba hiyo. Ikiwa = kazi mpya = haijainishwa pia na - fomu ya kamba ya operesheni ya kwanza haiwezi kuwa na ishara sawa iliyoingia.

Vigezo vya mazingira vifuatavyo vinaathiri utekelezaji wa fc:

FCEDIT

Jina la mhariri wa kutumia.

HISTSIZE

Idadi ya amri za awali zilizopatikana.

fg [ kazi ]

Hoja kazi maalum au kazi ya sasa mbele.

getopts optstring var

Amri ya POSIX amri, sio kuchanganyikiwa na upatikanaji wa maabara ya Bell Labs (1).

Shauri la kwanza linapaswa kuwa mfululizo wa barua, kila moja ambayo inaweza kuwa ikifuatiwa na colon ili kuonyesha kwamba chaguo inahitaji hoja. Tofauti iliyochaguliwa ni kuweka kwenye chaguo iliyopangwa.

Amri ya getopts inapunguza utumiaji mkubwa wa kupata (1) kutokana na utunzaji wake wa hoja zilizo na whitespace.

Kujengwa kwa upatikanaji inaweza kutumika kwa kupata chaguo na hoja zao kutoka kwenye orodha ya vigezo. Inapotafsiriwa , kupata upya thamani ya chaguo inayofuata kutoka kwa chaguo cha chaguo katika orodha katika aina ya shell iliyowekwa na var na ni index katika variable shell OPTIND Wakati shell inakaribishwa, OPTIND imeanzishwa kwa 1. Kwa kila chaguo inahitaji hoja, upatikanaji wa getopta utaiweka kwenye variable ya shell OPTARG Ikiwa chaguo haipatiwi kwa optstring basi OPTARG itaondolewa .

Optstring ni kamba ya barua zilizochaguliwa za barua. Ikiwa barua ikofuatiwa na koloni, chaguo linatarajiwa kuwa na hoja ambayo inaweza au isiyoweza kutenganishwa nayo kwa nafasi nyeupe. Ikiwa tabia ya chaguo haipatikani ambapo inatarajiwa, getopts itaweka variable variable kwa '`?' ' Getopts basi itaanza OPTARG na kuandika pato kwa kosa la kawaida. Kwa kufafanua koloni kama tabia ya kwanza ya optstring makosa yote itakuwa kupuuzwa.

Thamani ya nonzero inarudi wakati chaguo la mwisho limefikiwa. Ikiwa hakuna masuala yanayobaki, vifupisho vichagua chaguo maalum, `` - '' vinginevyo, itaweka var ``? ''

Kipande cha kifuatacho kinachoonyesha inaonyesha jinsi mtu anaweza kusuluhisha hoja za amri ambayo inaweza kuchukua chaguzi [a] na [b] na chaguo [c] ambayo inahitaji hoja.

wakati getopts abc: f
fanya
Faili $ f in
a | b) bendera = $ f ;;
c) gari = $ OPTARG ;;
\?) echo $ USAGE; Toka 1 ;;
esac
kufanyika
Badilisha 'expr $ OPTIND - 1`

Nambari hii itakubali yoyote yafuatayo kama sawa:

Faili ya faili ya cmd-acarg
faili ya faili ya cmd -a-arg
cmd -carg-faili file
cmd -a -carg - faili file

amri -rv amri ...

Hifadhi hiyo ina meza ya hashi ambayo inakumbuka maeneo ya amri. Kwa hoja hakuna chochote, amri ya hashi inafuta maudhui ya meza hii. Maingizo ambayo hayajaonekana tangu amri ya mwisho ya cd imewekwa na asterisk; inawezekana kwa maingilio haya kuwa batili.

Kwa hoja, amri ya hashi huondoa amri maalum kutoka kwenye meza ya hashi (isipokuwa kama ni kazi) na kisha huwaweka. Kwa chaguo- v , hash inabadilisha maeneo ya amri kama inavyopata. Chaguo - husababisha amri ya hashi kufuta funguo zote kwenye meza ya hash isipokuwa kwa kazi.

jobid [ kazi ]

Chapisha id ya mchakato wa mchakato wa kazi. Ikiwa hoja ya kazi imefutwa, kazi ya sasa inatumiwa.

kazi

Amri hii inataja michakato yote ya asili ambayo ni watoto wa mchakato wa sasa wa shell.

pwd

Chapisha saraka ya sasa. Amri iliyojengwa inaweza kutofautiana na programu ya jina moja kwa sababu amri iliyojengwa inakumbuka nini saraka ya sasa ni badala ya kuifanya tena kila wakati. Hii inafanya haraka. Hata hivyo, ikiwa saraka ya sasa imetajwa, toleo la kujengwa la pwd litaendelea kuchapisha jina la kale la saraka.

soma [- p haraka ] [- r ] kutofautiana ...

Haraka imechapishwa ikiwa chaguo- p ni maalum na pembejeo ya kawaida ni terminal. Kisha mstari unasomwa kutoka kwa pembejeo ya kawaida. Nambari mpya ya trailing imefutwa kutoka kwenye mstari na mstari umegawanywa kama ilivyoelezwa katika sehemu ya kugawanyika kwa neno hapo juu, na vipande vinatumiwa kwa vigezo vya utaratibu. Angalau moja ya kutofautiana yanapaswa kuwa maalum. Ikiwa kuna vipande zaidi kuliko vigezo, vipande vilivyobaki (pamoja na wahusika katika IFS ambavyo viliwatenganisha ) vinatumiwa kwa mabadiliko ya mwisho. Ikiwa kuna vigezo zaidi kuliko vipande, vigezo vilivyobaki vinatumiwa kamba ya null. Kusoma kujifunza kutaonyesha mafanikio isipokuwa EOF inapokutana na pembejeo, hali ambayo kushindwa inarudi.

Kwa chaguo-msingi, isipokuwa chaguo- r ni maalum, kurudi nyuma `` '' hufanya kama tabia ya kutoroka, na kusababisha tabia yafuatayo kutibiwa halisi. Ikiwa urejeshaji unakufuatiwa na waandishi wa habari mpya, kurudi nyuma na tarehe mpya itafutwa.

jina la kutafsiri ...

soma-soma

Majina maalum yamewekwa alama kama kusoma tu, ili wasiweze kubadilishwa au kufutwa. Hifadhi inaruhusu thamani ya kutofautiana kuwekwa wakati huo huo imewekwa kwa kusoma tu kwa kuandika

jina la kutafsiriwa = thamani

Kwa hoja hakuna amri ya wasomaji inaorodhesha majina ya wote kusoma vigezo tu. Kwa chaguo- p iliyochaguliwa pato itapangiliwa vizuri kwa matumizi yasiyo ya maingiliano.

Weka [{- chaguo | + chaguzi | - hoja ... ]

Amri ya kuweka hufanya kazi tatu tofauti.

Kwa hoja hakuna, huorodhesha maadili ya vigezo vyote vya shell.

Ikiwa chaguo zinapewa, huweka bendera maalum cha chaguo, au huwafungua kama ilivyoelezwa katika sehemu inayoitwa Sx Argument List Processing.

Matumizi ya tatu ya amri ya kuweka ni kuweka maadili ya vigezo vya mpangilio wa shell kwa vijiti maalum. Ili kubadilisha vigezo vya mpangilio bila kubadilisha chaguzi yoyote, tumia `` - '' kama hoja ya kwanza ya kuweka. Ikiwa hakuna args walipo, amri ya kuweka itafungua vigezo vyote vya mpangilio (sawa na kutekeleza `` kuhama $ #. ''

thamani ya kutofautiana

Inacha thamani ya kutofautiana. (Kwa ujumla ni bora kuandika variable = thamani badala ya kutumia setvar setvar inalenga kutumika katika kazi ambayo hugawa maadili kwa vigezo ambao majina yamepitishwa kama vigezo.)

kuhama [ n ]

Shiriki vigezo vya mpangilio n mara. Mabadiliko huweka thamani ya $ 1 kwa thamani ya $ 2 thamani ya $ 2 kwa thamani ya $ 3 na kadhalika, kupunguza thamani ya $ # kwa moja. Ikiwa n ni kubwa kuliko idadi ya vigezo vya mpangilio, kuhama itatoa ujumbe wa kosa, na kuondoka kwa hali ya kurudi 2.

nyakati

Chapisha nyakati za watumiaji na mfumo wa kusanyiko kwa shell na kwa ajili ya michakato kukimbia kutoka shell. Hali ya kurudi ni 0.

Ishara ya hatua ya mtego ...

Sababu shell itapelekeze na kutekeleza hatua wakati yoyote ya ishara maalum inapokelewa. Ishara ni maalum kwa idadi ya ishara. Ikiwa ishara ni 0 hatua inafanywa wakati shell inatoka. hatua inaweza kuwa null au `` - '' ya zamani inasababisha ishara iliyosahihishwa kuzingatiwa na mwisho husababisha hatua ya kutolewa kuchukuliwe. Wakati shell inakata msongamano , inaruhusu ishara zilizopigwa (lakini hazipatikani) kwenye hatua ya default. Amri ya mtego haina athari kwenye ishara ambazo zimepuuzwa wakati wa kuingia kwenye shell.

aina [ jina ... ]

Eleza kila jina kama amri na uchapishe azimio la utafutaji wa amri. Maazimio yanayowezekana ni: kichwa kikuu cha shell, alias, shell builtin , amri, alias kufuatilia na haipatikani. Kwa vikwazo upanuzi wa alia huchapishwa; kwa amri na vyuo vilivyofuatiliwa njia kamili ya amri imechapishwa.

Ufikiaji [- H -S ] [- a-tfdscmlpn [ thamani ]]

Kuuliza kuhusu au kuweka mipaka ngumu au laini kwenye michakato au kuweka mipaka mipya. Chaguo kati ya kikomo ngumu (ambayo hakuna mchakato unaruhusiwa kukiuka, na ambayo haiwezi kuinuliwa mara moja imepungua) na kikomo kidogo (ambacho kinasababisha taratibu za kuonyeshwa lakini sio kuuawa, na ambacho kinaweza kuinuliwa) kinafanywa na bendera hizi:

-H

kuweka au kuuliza juu ya mipaka ngumu

-S

kuweka au kuuliza juu ya mipaka laini. Ikiwa hakuna - H na S si maalum, kikomo cha laini kinaonyeshwa au mipaka yote imewekwa. Ikiwa wote ni maalum, mwisho wa mafanikio.

Kikomo ya kuhojiwa au kuweka, basi, huchaguliwa na kutaja mojawapo ya bendera hizi:

-a

onyesha mipaka yote ya sasa

-t

onyesha au kuweka kikomo kwa muda wa CPU (kwa sekunde)

-f

onyesha au kuweka kikomo kwenye faili kubwa ambayo inaweza kuundwa (kwa vitalu vya 512-byte)

-d

onyesha au kuweka kikomo kwenye ukubwa wa sehemu ya data ya mchakato (kilobytes)

-s

onyesha au kuweka kikomo juu ya ukubwa wa stack wa mchakato (kilobytes)

-c

onyesha au kuweka kikomo kwenye ukubwa wa ukubwa wa ukubwa wa msingi ambao unaweza kufanywa (kwa vitalu vya 512-byte)

-m

onyesha au kuweka kikomo kwenye kumbukumbu kamili ya kimwili inayoweza kutumika na mchakato (kilobytes)

-l

onyesha au kuweka kikomo juu ya kiasi gani cha kumbukumbu cha kumbukumbu kinaweza kufunga na mlock (2) ( kilobytes )

-p

onyesha au kuweka kikomo juu ya idadi ya taratibu mtumiaji anayeweza kuwa na wakati mmoja

-n

onyesha au kuweka kikomo kwenye faili za namba mchakato unaweza kufungua mara moja

Ikiwa hakuna mojawapo haya yameelezwa, ni kikomo cha ukubwa wa faili inayoonyeshwa au kuweka. Ikiwa thamani imeelezwa, kikomo kinawekwa kwa nambari hiyo; vinginevyo kikomo cha sasa kinaonyeshwa.

Mipaka ya mchakato wa holela inaweza kuonyeshwa au kuweka kwa kutumia matumizi ya sysctl (8).

umask [ mask ]

Weka thamani ya umask (angalia umask (2)) kwa thamani ya octal maalum. Ikiwa hoja haikufunguliwa, thamani ya umask imechapishwa.

ulias [- a ] [ jina ]

Ikiwa jina linaelezwa, shell huondoa alia hiyo. Ikiwa - a ni maalum, aliases wote huondolewa.

ongeza jina ...

Vigezo na kazi maalum husafishwa na hazifunguliwe. Ikiwa jina linalojitokeza linalingana na variable na kazi, wote hubadilishwa na kazi haifai.

kusubiri [ kazi ]

Kusubiri kazi maalum ili kukamilisha na kurejea hali ya kuondoka ya mchakato wa mwisho katika kazi. Ikiwa hoja haikuachiliwa, jaribu kazi zote kukamilisha na kurudi hali ya kutoka kwa sifuri.

Amri ya Mipangilio ya Amri

Wakati sh inatumiwa kwa njia moja kwa moja kutoka kwa terminal, amri ya sasa na historia ya amri (angalia fc katika Sx Builtins) inaweza kuhaririwa kutumia vi-mode ya mstari wa amri ya amri. Hali hii hutumia amri, iliyoelezwa hapo chini, sawa na sehemu ndogo ya wale walioelezwa kwenye ukurasa wa mtu wa vi. Amri ya "kuweka" -o vi inawezesha mpangilio wa mode na uingie kwenye mode ya kuingiza. Kwa vi-mode imewezeshwa, sh inaweza kubadilishwa kati ya kuingiza mode na mode amri. Mhariri hajaelezewa kwa ukamilifu hapa, lakini utakuwa katika hati ya baadaye. Ni sawa na vi: kuandika Aq ESC itakupeleka kwenye amri ya amri ya VI. Kupiga Aq kurudi wakati wa mode amri itapita mstari kwenye shell.

Muhimu: Tumia amri ya mtu ( % mtu ) ili kuona jinsi amri hutumiwa kwenye kompyuta yako fulani.