Ash - Linux Command - Unix Command

NAME

sh - komandu tulks ( čaula )

SINOPSIS

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -words [ mērķis ... ]

APRAKSTS

Sh ir sistēmas standarta komandu tulks. Pašreizējā sh versija tiek mainīta, lai atbilstu POSIX 1003.2 un 1003.2a specifikācijām par korpusu. Šajā versijā ir daudzas funkcijas, kas dažos aspektos šķiet līdzīgas Korna apvalkam, taču tas nav Korn apvalka klons (sk. Ksh (1)). Šajā apvalkā tiek iekļauti tikai POSIX apzīmējumi, kā arī daži Berkeley paplašinājumi. Mēs sagaidām POSIX atbilstību laika posmam 4.4. BSD tiek atbrīvots. Šī cilvēka lapa nav paredzēta apmācībai vai pilnīgai korpusa specifikācijai.

Pārskats

Apvalks ir komanda, kas nolasa līnijas no faila vai termināļa, tos interpretē un parasti izpilda citas komandas. Tā ir programma, kas darbojas, kad lietotājs piesakās sistēmā (lai gan lietotājs var izvēlēties citu apvalku ar komandu chsh (1)). Korpusā tiek izmantota valoda, kurai ir plūsmas kontroles konstruktīvi, makro iekārta, kas papildus datu glabāšanai piedāvā vairākas funkcijas, kā arī iebūvēta vēstures un līnijas rediģēšanas iespējas. Tas ietver daudzas funkcijas, kas palīdz interaktīvai lietošanai, un tam ir priekšrocība, ka skaidrojošā valoda ir kopīga gan interaktīvai, gan neinteraktīvai lietošanai (čaulas skripti). Tas nozīmē, ka komandas var ievadīt tieši darbojošajam čaulam vai arī tos var ievietot failā, un failu var izpildīt tieši čaula.

Izsaukšana

Ja nav neviena args un ja korpusa standarta ievade ir savienota ar termināli (vai ja ir iestatīts - i karodziņš), un opcija -c nav, apvalks tiek uzskatīts par interaktīvu apvalku . Interaktīvā čaula parasti pirms katras komandas tiek piedāvāts un programmēšanas un komandu kļūdas atšķiras (kā aprakstīts tālāk). Sākot pirmo reizi, apvalks pārbauda argumentu 0, un, ja tas sākas ar domuzīmi, "shell" arī tiek uzskatīts par pieteikšanās čaulu. Sistēma to parasti automātiski veic, kad lietotājs pirmo reizi pierakstās. Pirmais pieteikšanās čeks vispirms nolasa komandas no failiem / etc / profile un .profile, ja tādi ir. Ja vides mainīgais ENV ir iestatīts ierakstā uz čaulu vai ir iestatīts pieteikšanās čaulas profilā. Turpmāk čaula nolasa komandas no ENV nosauktā faila. Tāpēc lietotājam ir jāievieto komandas, kas izpildāmas tikai pieteikšanās laiku .profila failā un komandas, kas tiek izpildītas katram apvalkam ENV failā. Lai kādam failam iestatītu ENV mainīgo, ievietojiet nākamo rindiņu savā mājas direktorijā .profile

ENV = $ HOME / .shinit; eksports ENV

aizstājot `` .shinit '' jebkuru faila nosaukumu, kuru vēlaties. Tā kā ENV fails tiek lasīts katram čaulas izmantojumam, ieskaitot čaulas skriptus un neinteraktīvos čaulas, sekojošā paradigma ir noderīga, lai ierobežotu komandas ENV failā interaktīvām piesaistēm. Novietojiet komandas zem `` case '' un `` esac '' zemāk (šīs komandas ir aprakstītas vēlāk):

gadījums $ - in * i *)

# komandas tikai interaktīvai lietošanai

...

esac

Ja ir norādīti komandrindas argumenti, izņemot opcijas, tad korpuss apstrādā pirmo argumentu kā faila nosaukumu, no kura var lasīt komandas (shell skriptu), un pārējie argumenti tiek noteikti kā korpusa atrašanās vietas parametri ($ 1 , $ 2 utt.). Pretējā gadījumā apvalks nolasa komandas no standarta ievades.

Argumentu saraksta apstrāde

Visām vienas burtu opcijām ir atbilstošs nosaukums, ko var izmantot kā opciju - o argumentu. Nosaukuma nosaukums ir norādīts blakus vienotās vēstules opcijai zemāk esošajā aprakstā. Norādot domuzīmi, `` - '' ieslēdz opciju, izmantojot plus `` + '' atspējo opciju. No komandrindas vai ar komplektu (1) builtin (aprakstīts vēlāk) var iestatīt šādas opcijas.

- allexport

Eksportēt visus mainīgos, kas piešķirti. (NEPIEĻAUJAMA par 4.4 alfa)

-c

Izlasiet komandas no komandrindas. No standarta ieejas nevar nolasīt nekādas komandas.

-C noclobber

Nepārrakstiet esošos failus ar ``> '' (NEPILNOŠINĀTI par 4.4alpha)

-E errexīts

Ja tas nav interaktīvs, nekavējoties izejiet, ja neizdodas pārbaudīt komandu. Komandas izejas statuss tiek uzskatīts par skaidri pārbaudītu, ja komanda tiek izmantota, lai kontrolētu, vai elifs laikā vai līdz vai arī ja komanda ir `` && '' vai `` || '' operatora kreisā operands.

-f noglob

Atspējot pathname paplašināšanu.

-n noexec

Ja nav interaktīvs, izlasiet komandas, bet neveiciet tās. Tas ir noderīgi čaulas skriptu sintakses pārbaudei.

-n nounset

Mēģinot izvērst mainīgo, kas nav iestatīts, rakstīt ziņojumu ar standarta kļūdu, un, ja čaula nav interaktīva, nekavējoties izejiet. (NEPIEĻAUJAMA par 4.4 alfa)

-v verbose

Apvalks raksta savu ieguldījumu standarta kļūdā, kā tas tiek lasīts. Noderīga atkļūdošanai.

-x xtrace

Uzrakstiet katru komandu uz standarta kļūdu (pirms to izpilda "+", pirms to izpilda. Noderīga atkārtotai problēmai.

-Q quietprofile

Ja ir iestatīti - v vai - x opcijas, tos nepiemēro, lasot inicializācijas failus, kas ir / etc / profile .profile un ENV vides mainīgā norādītais fails.

-Es ignorēju

Ievērojiet EOF no ievades, kad esat interaktīvs.

-i interaktīvs

Piespiest korpusu rīkoties interaktīvi.

-m monitors

Ieslēgt darba vadību (iestatīt automātiski, kad tas ir interaktīvs).

-s stdin

Izlasiet komandas no standarta ieejas (automātiski iestatiet, ja nav failu argumenti). Šī opcija neietekmē iestatījumu pēc tam, kad apvalks jau ir sācis darboties (ti, ar iestatīto (1)).

-V vi

Iespējot iebūvēto vi (1) komandrindas redaktoru (atspējo - E, ja tas ir iestatīts).

-E emacs

Iespējojiet iebūvēto emacs (1) komandrindas redaktoru (atspējo - V, ja tas ir iestatīts).

-b paziņot

Iespējot asinhronu paziņojumu par fona darba pabeigšanu. (NEPIEĻAUJAMA par 4.4 alfa)

Leksiskā struktūra

Apvalks lasa ievade pozīcijās no faila un izdzēš to vārdos ar atstarpēm (atstarpes un cilnes), kā arī dažās rakstzīmes, kas ir īpašas apvalksi, ko sauc par "operatoriem". Ir divu veidu operatori: kontroles operatori un novirzīšanas operatori (to nozīme ir apskatīta vēlāk). Tālāk ir norādīts operatoru saraksts:

"Vadības operatori:"

&&& (); ;; | ||

"Pārvietošanas operators:"

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

Citāti

Citāti izmanto, lai noņemtu noteiktas rakstzīmes vai vārdu īpašo nozīmi apvalkam, piemēram, operatoriem, atstarpēm vai atslēgvārdiem. Ir trīs veidu citēšanas: saskaņotas vienotas kotācijas, saskaņotas dubultās pēdiņas un gruntsrida.

Backslash

Backslash tiek saglabāts šādā rakstzīme burtiskā nozīmē, izņemot Aq jaunu līniju. Atzvana slīpsvītra pirms Aq jaunās līnijas tiek uzskatīta par līnijas turpinājumu.

Vieni centieni

Ierobežojošās rakstzīmes vienā pēdiņās saglabā burtu nozīmi visām rakstzīmēm (izņemot atsevišķas pēdiņas, tādēļ nav iespējams ievietot atsevišķas kotācijas vienā kotētajā stīgu).

Dubultās cenas

Apzīmējumu pievienošana divkāršās pēdiņās saglabā burtu nozīmi visām rakstzīmēm, izņemot dolāru ($) backquote (`) un backslash (\). Dubultā pēdiņās esošā backslash ir vēsturiski dīvaina un kalpo, lai citētu tikai šādas rakstzīmes:

$ `\

Pretējā gadījumā tas paliek burtiski.

Rezervēti vārdi

Rezervēti vārdi ir vārdi, kuriem īpaša nozīme ir apvalkam un kurus atzīst līnijas sākumā un pēc kontroles operatora. Turpmāk ir rezervēti vārdi:

! Ta elif Ta fi Ta, bet Ta lietā

cits Ta Ta Ta, tad Ta {Ta}

darīt Ta dara Ta līdz Ta, ja Ta Esac

Viņu nozīme tiek apspriesta vēlāk.

Aizstājvārdi

Pseidonīms ir nosaukums un atbilstošā vērtība, kas tiek noteikta, izmantojot alias (1) builtin komandu. Ikreiz, kad var rasties rezervēts vārds (sk. Iepriekš), un pēc rezervētu vārdu pārbaudes čaula pārbauda vārdu, lai redzētu, vai tas atbilst aizstājvārdam. Ja tas notiek, tas aizstāj to ievades plūsmā ar tās vērtību. Piemēram, ja pastāv alias ar nosaukumu `` lf '' ar vērtību `` ls -F '', tad ievadi:

ja foobar

kļūtu

ls-F foobar

Pseidonīmi nodrošina ērtu veidu, kā naidīgie lietotāji var izveidot komandas īsfilmas, neprasot, kā izveidot funkcijas ar argumentiem. Tos var arī izmantot, lai izveidotu leksiski nekonkrētu kodu. Šī lietošana ir noraidīta.

Komandas

Apvalks interpretē vārdus, ko tā nolasa, saskaņā ar valodu, kuras specifikācija neattiecas uz šī cilvēka lapu (atsaucieties uz BNF POSIX 1003.2 dokumentā). Būtībā tomēr tiek lasīta līnija, un ja pirmā līnijas vārds (vai pēc kontroles operatora) nav rezervēts vārds, tad čaula atpazīst vienkāršu komandu. Pretējā gadījumā varētu būt atpazīta sarežģīta komanda vai kāds cits īpašs konstrukts.

Vienkāršie komandējumi

Ja vienkārša komanda ir atpazīta, apvalks veic šādas darbības:

  1. Veidlapas `` name = value '' vadošie vārdi tiek noņemti un piešķirti vienkāršās komandas vidē. Pārejas operatori un to argumenti (kā aprakstīts tālāk) tiek noņemti un apstrādei saglabāti.
  2. Atlikušos vārdus paplašina, kā aprakstīts sadaļā "Expansions", un pirmais atlikušais vārds tiek uzskatīts par komandas nosaukumu un komanda atrodas. Pārējie vārdi tiek uzskatīti par komandas argumentiem. Ja nav komandas nosaukuma, tad `` name = value '' 1. uzdevumā atzītie mainīgie uzdevumi ietekmē pašreizējo apvalku.
  3. Redirections tiek veiktas, kā aprakstīts nākamajā sadaļā.

Pārvirzīšana uz priekšu

Redirections tiek izmantotas, lai mainītu, kur komanda nolasa ievadi vai nosūta savu izvadi. Parasti novirzīšana atver, aizver vai dublē esošu atsauci uz failu. Pārveidošanai izmantotais vispārējais formāts ir:

[n] redir-op fails

kur redir-op ir viens no iepriekš minētajiem novirzīšanas operatoriem. Tālāk ir norādīts iespējamo novirzīšanas saraksts. Bq n ir izvēles numurs, piemēram, "3" (nevis "Bq 3", kas attiecas uz failu deskriptoru).

[n]> fails

Novirzīt standarta izvadi (vai n) uz failu.

[n]> | fails

Tas pats, bet ignorē opciju - C.

[n] >> fails

Pievienot failu standarta izvadi (vai n).

[n]

Novirzīt standarta ievadi (vai n) no faila.

[n1] <& n2

Dublikāta standarta ievade (vai n1) no faila deskriptora n2.

[n] <& -

Aizvērt standarta ievade (vai n).

[n1]> & n2

Standarta produkta (vai n1) dublējums no n2.

[n]> & -

Aizvērt standarta izvadi (vai n).

[n] <> fails

Atvērt failu lasīšanai un rakstīšanai uz standarta ieejas (vai n).

Šādu novirzīšanu bieži sauc par `` here-document ''

[n] << atdalītājs

šeit-doc-text ...

norobežotājs

Viss teksts secīgajās līnijās līdz norobežotājam tiek saglabāts prom un pieejams standarta ievades komandā vai faila deskriptors n, ja tas ir norādīts. Ja tiek norādīts norobežotājs, kas norādīts sākotnējā rindā, šeit tekstu aplūko burtiski, pretējā gadījumā tekstam tiek piemērota parametru paplašināšana, komandu aizstāšana un aritmētiskais paplašinājums (kā aprakstīts sadaļā "Expansions"). "Ja operators ir` `<< - '', nevis` `<< '', tad vadošās cilnes šeit doc text tiek attīrīti.

Meklēšana un izpilde

Ir trīs veidu komandas: čaulas funkcijas, iebūvētās komandas un parastās programmas - un komandu meklē (pēc nosaukuma) šādā secībā. Katrs no tiem tiek izpildīts citādi.

Kad tiek veikta apvalka funkcija, visi apvalka pozīcijas parametri (izņemot $ 0, kas paliek nemainīgi) ir iestatīti kā apvalka funkcijas argumenti. Mainīgie lielumi, kas tiek skaidri novietoti komandas vidē (novietojot tiem piešķirtos uzdevumus pirms funkcijas nosaukuma), tiek veiktas lokālā funkcijai un tiek iestatītas uz norādītajām vērtībām. Tad tiek izpildīta funkcija definīcijā dotā komanda. Kad komanda pabeigta, pozīcijas parametri tiek atjaunoti to sākotnējās vērtībās. Tas viss notiek pašreizējā apvalkā.

Shell builtins tiek izpildīti iekšpusē čaulas, neradot jaunu procesu.

Pretējā gadījumā, ja komandas nosaukums neatbilst funkcijai vai iebūvētajam, failu sistēma tiek meklēta par parastu programmu (kā aprakstīts nākamajā sadaļā). Kad tiek izpildīta normāla programma, apvalks izpilda programmu, nodod programmam argumentus un vidi. Ja programma nav parastā izpildāmā faila (ti, ja tā nav sākusies ar burvju skaitli, kura ASCII attēlojums ir "#!", Tad izpildīt (2) pēc tam atgriež Er ENOEXEC) apvalks interpretē programmu apakšsekcija. Bērna apvalks šajā gadījumā atkārtoti aktivizēsies tā, lai efekts būtu tāds, it kā uzaicinātu jauno apvalku, lai apstrādātu ad-hoc apvalka skriptu, izņemot to, ka hroniskās komandas, kas atrodas vecākajā apvalkā, atrašanās vietu atcerēsies bērns.

Ņemiet vērā, ka šī dokumenta un paša pirmkoda iepriekšējās versijas maldīgi un neregulāri atsaucas uz čaulas skriptu bez burvju numura kā "korpusa procedūra".

Ceļojuma meklēšana

Novietojot komandu, vispirms apvalks apskata, vai tam ir apvalks ar šo nosaukumu. Tad tā meklē iekšējo komandu ar šo vārdu. Ja builtin komanda nav atrasta, notiek viena no divām lietām:

  1. Komandu nosaukumi, kuros ir slīpsvītra, tiek vienkārši izpildīti, neveicot nekādus meklējumus.
  2. Kārta katru otro ierakstu meklē PATH komandai. PATH mainīgā lielumam jābūt ierakstu sērijai, kas atdalīti ar kolu. Katrs ieraksts sastāv no direktorija nosaukuma. Pašreizējo direktoriju var norādīt netieši, izmantojot tukšu direktorija nosaukumu vai tieši vienu periodu.

Komandas izvešanas statuss

Katrai komandai ir izejas statuss, kas var ietekmēt citu čaulas komandu darbību. Paradigma ir tā, ka komanda iziet no nulles normālai vai veiksmīgai darbībai, un nav nulles, ja kļūda, kļūda vai nepatiesa norāde. Katras komandas manā lappusē jānorāda dažādie izejas kodi un to nozīme. Turklāt, iebūvētās komandas atgriež izejas kodus, tāpat kā izpildīto apvalka funkciju.

Kompleksie komandas

Kompleksās komandas ir vienkāršas komandas kombinācijas ar vadības operatoriem vai rezervētajiem vārdiem, kopā izveidojot lielāku sarežģītu komandu. Vispārīgāk, komanda ir viena no šīm:

  • vienkārša komanda
  • cauruļvads
  • saraksts vai saliktais saraksts
  • salikta komanda
  • funkciju definīcija

Ja vien nav norādīts citādi, komandas izvešanas statuss ir pēdējās vienkāršās komandas izpildītā komanda.

Cauruļvadi

Cauruļvads ir vienas vai vairāku komandu secība, ko atdala kontroles operators. Visu, izņemot pēdējo komandu, standarta izvade ir savienota ar nākamās komandas standarta ievadi. Pēdējās komandas standarta izlaide tiek mantota no čaulas, kā parasti.

Cauruļvada formāts ir:

[!] komandu1 [| command2 ...]

Komandas 1 standarta izvade ir savienota ar komandas 2 standarta ievadi. Tiek uzskatīts, ka standarta ievade, standarta izvade vai abas komandas tiek piešķirtas cauruļvadā pirms jebkādas novirzīšanas, ko norāda pārorientēšanas operatori, kuri ir komandas daļa.

Ja cauruļvads nav fonā (aplūkots vēlāk), čaula gaida visas komandas, kas jāaizpilda.

Ja rezervēts vārds! nav pirms cauruļvada, izejas statuss ir pēdējās cauruļvada norādītās komandas izejas statuss. Pretējā gadījumā iziešanas statuss ir loģisks NĒ no pēdējās komandas izejas statusa. Tas ir, ja pēdējā komanda atgriež nulli, izejas statuss ir 1; ja pēdējā komanda atgriež lielāku par nulli, izejas statuss ir nulle.

Tā kā cauruļvada standarta ievade vai standarta jauda vai abas tiek piešķirtas pirms novirzīšanas, to var mainīt ar novirzīšanu. Piemēram:

$ command1 2> & 1 | command2

nosūta standarta izvadi un standarta komandas kļūdu 1 uz komandas 2 standarta ievadi.

A; vai terminators izraisa iepriekšējo AND-OR-sarakstu (aprakstīts nākamajā) secīgi izpildīt; a un izraisa iepriekšējā OR-OR saraksta asinhrono izpildi.

Ņemiet vērā, ka pretēji dažiem citiem čaumaliem katrs cauruļvada process ir atsaukušās čaulas bērns (ja vien tas nav čaulas builtins; tādā gadījumā tas tiek izpildīts pašreizējā čaulā, bet visas ietekmes uz vidi ir izdzēstas).

Fona komandas -

Ja komandu pārtrauc kontroles operators ampersand (&), apvalks izpilda komandu asinhroni - tas nozīmē, ka čaula nav jāgaida, kamēr komanda izpildīs nākamo komandu.

Formāts komandas darbināšanai fonā ir:

Command1 un [Command2 un ...]

Ja korpuss nav interaktīvs, asinhronās komandas standarta ievade ir iestatīta uz / dev / null

Saraksti - vispārīgi runājot

Saraksts ir nulles vai vairāk komandu secība, kas atdalīta ar jauniem vārdiem, semikoliem vai ampersandiem un pēc izvēles tiek pārtraukta ar vienu no šīm trim rakstzīmēm. Sarakstā esošās komandas tiek izpildītas tādā secībā, kādā tās ir rakstītas. Ja komandai seko ampersands, korpuss sāk komandu un nekavējoties turpina uz nākamo komandu; citādi tā gaida, kamēr komanda pāriet uz nākamo.

Īssavienojumu saraksts Operatori

`&& '' un` `|| '' ir AND-OR saraksta operatori. `&& '' izpilda pirmo komandu un pēc tam izpilda otro komandu, ja pirmās komandas izejas statuss ir nulle. `` || '' ir līdzīgs, bet izpilda otro komandu, ja pirmās komandas izejas statuss nav nulles. `` && '' un `` || '' abiem ir tāda pati prioritāte.

Plūsmas kontroles konstrukcijas - ja, kamēr, lai, gadījumā

Ja ir komandas sintakse

ja saraksts
tad sarakstu
[elif saraksts
tad saraksts] ...
[cits saraksts]
fi

Kamēr komandas sintakse ir

kamēr sarakstā
do sarakstu
pabeigts

Abi saraksti tiek izpildīti atkārtoti, kamēr pirmā saraksta izvešanas statuss ir nulle. Līdz brīdim, kad komanda ir līdzīga, bet vārdam ir vārds līdz brīdim, kad tas ir, kas to liek atkārtot, līdz pirmā saraksta izvešanas statuss ir nulle.

Komandas sintakse ir

mainīgajam vārdam ...
do sarakstu
pabeigts

Vārdi tiek paplašināti, un pēc tam saraksts tiek izpildīts atkārtoti, mainot katram vārdam pēc kārtas. darīt un izdarīt var aizstāt ar `` {'' un ``} ''

Pārtraukuma un turpināšanas komandas sintakse ir

pārtraukums [num]
turpināt [num]

Pārtraukums pārtrauc ciparu taustiņu cipariem. Turpināt turpināt ar nākamo dziļākās cilpas atkārtojumu. Tās ir ieviestas kā iebūvētas komandas.

Lietu komandas sintakse ir

lietas vārds iekšā
modelis);
...
esac

Modelis faktiski var būt viens vai vairāki modeļi (sk. Shell modeļus, kas aprakstīti vēlāk), atdalīti ar `` '' rakstzīmēm.

Komandu grupēšana kopā

Komandas var grupēt, rakstot vai nu

(saraksts)

vai

{list;

Pirmais no šiem izpilda komandas apakšshēmu. Builtin komandas, kas sagrupētas (saraksts), neietekmēs pašreizējo apvalku. Otrajā veidlapā nav cita čaumalas dakša, tāpēc tas ir nedaudz efektīvāks. Šādi veidojot komandu grupēšanu, varat novirzīt savu produkciju tā, it kā tā būtu viena programma:

{printf hello; printf pasaule \ n ";}> sveiciens

Funkcijas

Funkcijas definīcijas sintakse ir

nosaukums () komanda

Funkcijas definīcija ir izpildāms paziņojums; kad tas tiek izpildīts, tiek instalēta funkcija ar nosaukumu nosaukumu un atgriežas nulles izejas statuss. Parasti komanda ir saraksts, kas atrodas starp `` {'' un ``} ''

Mainīgie var tikt deklarēti kā vietējie funkcijas, izmantojot vietējo komandu. Tam vajadzētu parādīties kā pirmais paziņojums par funkciju, un sintakse ir

vietējais [mainīgais | -] ...

Vietējais tiek īstenots kā iebūvēta komanda.

Ja mainīgais tiek veidots lokāli, tas pārmanto sākotnējo vērtību un eksportē un lasīt tikai karodziņus no mainīgā ar tādu pašu nosaukumu apkārtējā apgabalā, ja tāds ir. Pretējā gadījumā mainīgais sākotnēji ir atiestatīts. Korpusam tiek izmantota dinamiskā noteikšana, tādēļ, ja, veicot mainīgo x vietējo, lai darbotos ar f, kas pēc tam izsauktu funkciju g, atsauces uz g, kas tiek veiktas iekšpusē g, attiecas uz mainīgo x, kas deklarēts f iekšpusē, nevis uz globālo mainīgo ar nosaukumu x .

Vienīgais īpašais parametrs, ko var padarīt lokāli, ir `` - '' Veidot `` - '' vietējās jebkādas čaulas opcijas, kuras tiek mainītas, izmantojot iestatīto komandu funkcijā, kas jāatjauno to sākotnējās vērtības, kad funkcija atgriež.

Atgriešanās komandas sintakse ir

atgriezties [exitstatus

Tas izbeidz pašlaik izpildes funkciju. Atgriešanās tiek īstenota kā builtin komanda.

Mainīgie un parametri

Korpuss saglabā parametru kopu. Parametru, ko apzīmē ar nosaukumu, sauc par mainīgo. Sākot darbību, apvalks pārvērš visus vides mainīgos uz čaulas mainīgajiem lielumiem. Jaunus mainīgos var iestatīt, izmantojot veidlapu

nosaukums = vērtība

Lietotāja iestatītajiem mainīgajiem lielumiem jābūt nosaukumam, kas sastāv tikai no alfabēta, ciparu un pasvītrojumiem - pirmajam nedrīkst būt ciparu skaitlis. Parametru var arī apzīmēt ar skaitli vai īpašu rakstzīmi, kā paskaidrots zemāk.

Pozīcijas parametri

Pozicionālais parametrs ir parametrs, ko apzīmē ar skaitli (n> 0). Korpuss sākotnēji nosaka tos komandrindas argumentus, kas seko čaulas skripta nosaukumam. Komplekta (1) builtinu var izmantot arī, lai iestatītu vai atiestatītu.

Īpašie parametri

Īpašs parametrs ir parametrs, ko apzīmē ar vienu no šīm īpašajām rakstzīmēm. Parametra vērtība ir norādīta blakus tās rakstzīmei.

*

Paplašina pozīcijas parametrus, sākot ar vienu. Ja paplašināšana notiek divkodolu virknē, tā tiek paplašināta uz vienu lauku ar katra parametra vērtību, kas atdalīts ar IFS mainītāja pirmo rakstzīmi, vai ar , ja IFS ir nestrādāts.

@

Paplašina pozīcijas parametrus, sākot ar vienu. Ja paplašināšanās notiek divkāršās pēdiņās, katrs pozīcijas parametrs tiek izvērsts kā atsevišķs arguments. Ja nav pozicionālo parametru, @ paplašinājums ģenerē nulles argumentus, pat ja @ ir dubultklikšķināts. Piemēram, tas galvenokārt nozīmē, ja $ 1 ir `` abc '' un $ 2 ir `` def ghi '', tad Qq $ @ tiek paplašināts uz abiem argumentiem:

abc def ghi

#

Paplašina pozīciju parametru skaitu.

?

Paplašina jaunākā cauruļvada izejas statusu.

- (smaids)

Paplašina uz pašreizējo opciju karodziņiem (vienas burta opciju nosaukumus, kas apvienoti virknē), kā norādīts izsaukumā, ar iestatīto builtin komandu vai netieši ar apvalku.

$

Paplašina uz izsaukto apvalku procesa ID. Apakšslānis saglabā tādu pašu vērtību kā $ kā tā vecāks.

!

Paplašina jaunākās fona komandas procesa ID, kas tiek izpildīts no pašreizējā apvalka. Cauruļvada procesa ID ir pēdējās vadības komanda.

0 (nulle.)

Paplašina uz čaulas vai čaulas skripta nosaukumu.

Word paplašinājumi

Šajā klauzulā ir aprakstītas dažādas paplašināšanās, kas tiek veiktas ar vārdiem. Ne visi paplašinājumi tiek veikti ar katru vārdu, kā skaidrots tālāk.

Tildes paplašinājumi, parametru paplašinājumi, komandu aizvietojumi, aritmētiskās paplašinājumi un citātu noņemšana, kas notiek vienā vārdam, tiek paplašināti līdz vienam laukam. Tas ir tikai lauka sadalīšana vai pagātnes paplašināšana, kas var radīt vairākus laukus no viena vārda. Vienīgais izņēmums no šī noteikuma ir īpašā parametra @ paplašināšana dubultkupējumu veidā, kā aprakstīts iepriekš.

Vārdu paplašināšanas secība ir:

  1. Tildes paplašināšana, parametru paplašināšana, komandu aizvietošana, aritmētiskā paplašināšana (tās visas notiek vienā un tajā pašā laikā).
  2. Lauka sadalīšana tiek veikta laukos, ko ģenerē solis (1), ja vien IFS mainīgais nav nulles.
  3. Pathname paplašināšana (ja vien nav iestatīts - f ir spēkā).
  4. Citāts pārcelšana.

$ Simbols tiek izmantots, lai ieviestu parametru paplašināšanu, komandas aizvietošanu vai aritmētisko novērtējumu.

Tildes paplašināšana (aizstājot lietotāja mājas direktoriju)

Vārds, kas sākas ar nekotēto tildes rakstzīmi (~), tiek pakļauts tildes paplašināšanai. Visas rakstzīmes līdz slīpsvītrai (/) vai vārda beigām tiek uzskatītas par lietotājvārdu un tās aizstāj ar lietotāja mājas direktoriju. Ja lietotājvārdu trūkst (kā ~ / foobar), tilde tiek aizstāta ar HOME mainīgo vērtību (pašreizējā lietotāja mājas direktoriju).

Parametru paplašināšana

Parametru paplašināšanas formāts ir šāds:

ja izteiksme sastāv no visām rakstzīmēm, līdz atbilstības ``} '' jebkuram ``) '' 'izgaismo ar atpakaļejošās slīpslas vai kotēto virkni, un rakstzīmes iegultajā aritmētiskajā izteiksmē, komandu aizstāšanā un mainīgo paplašinājumos netiek pārbaudīti, nosakot atbilstība ``) '' '

Vienkāršākā forma parametru paplašināšanai ir:

Parametra vērtība, ja tāda ir, tiek aizstāta.

Parametra nosaukums vai simbols var būt ietverts breketēs, kas nav obligāti, izņemot pozīcijas parametrus ar vairāk nekā vienu ciparu vai ja parametram seko raksturs, kuru var interpretēt kā daļu no vārda. Ja dubultkupējumu iekšpusē parādās parametru paplašinājums:

  1. Pathname paplašināšana netiek veikta par paplašināšanās rezultātiem.
  2. Lauka sadalīšana netiek veikta pēc izplešanās rezultātiem, izņemot @.

Turklāt parametru paplašināšanu var mainīt, izmantojot vienu no šiem formātiem.

Izmantojiet noklusējuma vērtības. Ja parametrs nav iestatīts vai nulle, vārda paplašināšana tiek aizstāta; pretējā gadījumā parametra vērtība tiek aizstāta.

Nosakiet noklusējuma vērtības. Ja parametrs nav iestatīts vai nulle, vārda paplašināšana tiek piešķirta parametram. Visos gadījumos parametra galīgā vērtība tiek aizstāta. Šādi var piešķirt tikai mainīgos lielumus, nevis pozīcijas parametrus vai īpašus parametrus.

Norādiet kļūdu, ja ir nulle vai atiestatīta. Ja parametrs ir nestrādāts vai nulle, vārda paplašinājums (vai ziņojums, kas norāda, ka tas nav iestatīts, ja vārds tiek izlaists) tiek rakstīts uz standarta kļūdu un čaula iziet ar nulles izejas statusu. Pretējā gadījumā parametra vērtība tiek aizstāta. Interaktīvajai čaulai nav jāiziet.

Izmantojiet alternatīvo vērtību. Ja parametrs ir nestrādāts vai nulle, aizstāj ar nulli; pretējā gadījumā vārda paplašināšana tiek aizstāta.

Iepriekš parādītajā parametru paplašinājumos kastītes izmantošana formātā noved pie testēšanas ar parametru, kas nav iestatīts vai null; Kolektora izlaidums izraisa parametra pārbaudi, kas nav iestatīts.

Stīgu garums. Garums parametru vērtības rakstzīmēs.

Apakšvirknes apstrādei ir pieejamas šādas četras parametru paplašināšanas veidi. Katrā gadījumā, lai novērtētu modeļus, tiek izmantota paraugu atbilstības atzīme (sk. Shell Patterns), nevis regulāras izteiksmes apzīmējums. Ja parametrs ir * vai @, paplašināšanas rezultāts nav precīzi noteikts. Pilnu parametru paplašināšanas virknes pievienošana divkāršās pēdiņās nerada šādas četras rakstzīmju rakstzīmes, kas citējamas, bet citātu raksturlielumiem pietuvojumos ir šāds efekts.

Noņemt mazāko sufiksu zīmējumu. Vārds tiek izvērsts, lai izveidotu modeli. Parametra paplašināšanās rezultātā tiek parādīts parametrs, kuram svītrotais modelis atbilst mazākajai daļai.

Noņemt lielāko sufiksu zīmējumu. Vārds tiek izvērsts, lai izveidotu modeli. Parametra paplašināšanās rezultātā tiek parādīts parametrs, kurai svītrotais modelis atbilst lielākajai daļai.

Noņemt mazāko prefiksu zīmējumu. Vārds tiek izvērsts, lai izveidotu modeli. Parametra paplašināšanās rezultātā tiek parādīts parametrs, ar mazāko prefiksa daļu, kas ir saskaņota ar modeli, dzēsts.

Noņemiet lielāko prefiksu zīmējumu. Vārds tiek izvērsts, lai izveidotu modeli. Parametra paplašināšanās rezultātā tiek iegūts parametrs, un lielākā daļa prefiksa, kas ir saskaņota ar modeli, ir dzēsta.

Command Substitution

Komandas aizvietošana ļauj komandas izvadi aizstāt paša komandas nosaukuma vietā. Komandas aizvietošana notiek tad, kad komandu pievieno šādi:

$ (komanda)

vai Po `` atpakaļkodētā '' versija Pc:

"komanda"

Apvalks paplašina komandu aizstāšanu, izpildot komandu apakšslodzes vidē un aizstājot komandu aizstāšanu ar komandas standarta izvadi, likvidējot vienas vai vairāku s secību aizvietošanas beigās. (Ievietotie s pirms izlaides beigām netiek noņemti, taču lauka sadalīšanas laikā tie var tikt pārveidoti par s, atkarībā no IFS vērtības un spēkā esošā citēšanas.)

Aritmētiskā paplašināšana

Aritmētiskās paplašināšanās nodrošina mehānismu aritmētiskās izteiksmes novērtēšanai un tā vērtības aizstāšanai. Aritmētiskās paplašināšanas formāts ir šāds:

$ ((izteiksme))

Izteiksme tiek pielīdzināta dubultkupāšanām, izņemot to, ka izteiksmē iekļautā dubultklikācija netiek īpaši apstrādāta. Korpuss paplašina visus žetonus parametru paplašināšanas izteiksmē, komandu aizstāšanā un citātu noņemšanā.

Tālāk korpuss uztver to kā aritmētisku izteiksmi un aizvieto izteiksmes vērtību.

Balta telpa sadalīšana (lauka sadalīšana)

Pēc parametru paplašināšanas, komandu aizstāšanas un aritmētiskās paplašināšanas apvalks skenē izplešanās un aizstāšanas rezultātus, kas netika novietoti divkāršās pēdiņās lauka sadalīšanai un var radīt vairākus laukus.

Korpuss katru IFS raksturu uzskata par norobežotāju un izmanto norobežojošās puses, lai sadalītu parametru paplašināšanas un komandu aizstāšanas rezultātus laukos.

Pathname paplašināšana (faila nosaukuma paaudze)

Ja nav iestatīta f- flag, faila nosaukuma ģenerēšana tiek veikta pēc vārda sadalīšanas pabeigšanas. Katrs vārds tiek uzskatīts par paraugu sēriju, atdalīts ar slīpsvītrām. Paplašināšanas process aizvieto vārdu ar visu esošo failu nosaukumiem, kuru nosaukumus var izveidot, nomainot katru modeli ar virkni, kas atbilst norādītajam paraugam. Tam ir divi ierobežojumi: pirmkārt, modelis nevar sakrist ar strāvu, kurā ir slīpsvītra, un, otrkārt, modelis nevar saskaņot virkni, kas sākas ar periodu, ja modelis nav pirmā rakstzīme. Nākamajā sadaļā aprakstīti modeļi, kurus izmanto gan Pathname paplašināšanai, gan gadījumam (1).

Shell modeļi

Raksturam ir normālas rakstzīmes, kas savietojamas ar sevi un meta-rakstzīmes. Meta-rakstzīmes ir ``! '' `` * '' ``? '' Un `` ['' Šīs rakstzīmes zaudē īpašo nozīmi, ja tās ir citētas. Ja tiek veikta komandu vai mainīgo aizstāšana un dolāra zīmes vai atpakaļ piezīmes netiek dubultās citētas, šīs rakstzīmes skenē komandas mainīgā vai izejas vērtību, un tās tiek pārvērstas meta-rakstzīmēs.

Zvaigznīte (`* * '') atbilst jebkurai simbolu virknei. Jautājuma zīme atbilst jebkuram vienam rakstzīmei. Kreisā kronšteina (`` [''] ievieš rakstzīmju klasi. Rakstzīmju klases beigas norāda ar (``] ''), ja trūkst ``] '', tad `` ['' atbilst `` ['', nevis ievieš rakstzīmju klasi. Rakstzīmju klase atbilst jebkurai no kvadrātiekavās ietvertajām rakstzīmēm. Var norādīt simbolu diapazonu, izmantojot mīnusa zīmi. Rakstzīmju klase var tikt papildināta, padarot izsaukuma punktu rakstzīmju klases pirmo rakstzīmi.

Lai rakstzīmju grupā iekļautu ``] '', padariet to pirmajā rakstzīmē (pēc ``! '', Ja tāds ir). Lai iekļautu mīnusa zīmi, padariet to par pirmo vai pēdējo rakstzīmi

Builtins

Šajā sadaļā ir uzskaitītas iebūvētās komandas, kas ir iebūvētas, jo tām ir jāveic kāda operācija, kuru nevar veikt atsevišķā procesā. Papildus tam ir vairākas citas komandas, kas var būt efektīvas (piemēram, echo 1).

:

Null komanda, kas atgriež 0 (true) izejas vērtību.

. fails

Norādītajā failā esošās komandas nolasa un izpilda apvalks.

alias [ nosaukums [ = virkne ... ]]

Ja ir norādīts nosaukums = string , apvalks definē pseidonīmu nosaukumu ar vērtību string. Ja tiek norādīts tikai vārds , tiek izdrukāts pseidonīmu nosaukums . Bez argumentiem, aizstājvārds izdrukā visu definēto aizstājvārdu vārdus un vērtības (sk. Unalias)

bg [ darbs] ...

Turpiniet norādīto darbu (vai pašreizējā darba vietā, ja nav darba) fonā.

komanda komandu arg ...

Izpildiet norādīto builtin komandu. (Tas ir noderīgi, ja jums ir apvalks ar tādu pašu nosaukumu kā builtin komanda.)

cd [ directory ]

Pārslēgties uz norādīto direktoriju (noklusējums $ HOME) Ja ierakstam CDPATH parādās cd komandas vidē vai ir iestatīts korpusa mainīgais CDPATH un direktorija nosaukums nav sākts ar slīpsvītru, tad tiks meklēti katalogi, kas ir uzskaitīti CDPATH. par norādīto direktoriju. CDPATH formāts ir tāds pats kā PATH . Interaktīvā čaulā cd komanda izdrukā tā direktorija nosaukumu, kuru tas faktiski pārslēdza, ja tas atšķiras no lietotāja nosaukuma. Tās var atšķirties vai nu tādēļ, ka tika izmantots CDPATH mehānisms, vai tāpēc, ka tika šķērsota simbola saite.

eval string ...

Saskaņot visus argumentus ar atstarpēm. Pēc tam atkārtojiet parsēšanu un izpildiet komandu.

exec [ komandu arg ... ]

Ja komanda netiek izlaista, apvalka process tiek aizstāts ar norādīto programmu (kurai jābūt reālai programmai, nevis apvalka integrēšanai vai funkcijai). Jebkāda redone uz komandu exec ir atzīmēta kā pastāvīga, tāpēc, ka exec komanda beidzas, tā nav atsaukta.

iziet [ exitstatus ]

Pārtrauciet čaulas procesu. Ja tiek norādīts exitstat , tas tiek izmantots kā korpusa izejas statuss; pretējā gadījumā tiek izmantota iepriekšējās komandas izejas statuss.

eksporta nosaukums ...

eksports -p

Konkrētie vārdi tiek eksportēti tā, lai tie tiktu rādīti nākamo komandu vidē. Vienīgais veids, kā no jauna eksportēt mainīgo, ir to noņemt. Apvalks ļauj iestatīt mainīgā vērtību tajā pašā laikā, kad to raksta

eksporta nosaukums = vērtība

Bez argumentiem eksporta komanda uzskaita visu eksportēto mainīgo nosaukumus. Ar norādīto - p opciju izvades formāts tiks piemērots neinteraktīvai lietošanai.

fc [- e redaktors ] [ pirmais [ pēdējais ]]

fc-l [ -n ] [ pirmais [ pēdējais ]]

fc -s [ vecais = jauns ] [ pirmais ]

Fc ievada sarakstus, vai rediģē un no jauna izpilda, komandas, kas iepriekš ievadītas interaktīvā apvalkā.

-e redaktors

Izmantojiet redaktoru, kuru nosaukusi redaktors, lai rediģētu komandas. Redaktora virkne ir komandas nosaukums, kuru var meklēt, izmantojot mainīgo PATH . Faktiskais lielums FCEDIT tiek izmantots kā noklusējums, kad - e nav norādīts. Ja FCEDIT ir nulle vai atiestatīta, tiek izmantota mainīgā EDITOR vērtība. Ja EDITOR ir nulle vai atiestatīts, kā redaktors tiek izmantots ed (1).

-l (ell)

Nosauciet komandas, nevis atsaucot uz tiem redaktoru. Komandas tiek rakstītas secībā, ko norāda pirmais un pēdējais operandi, ko ietekmē -r ar katru komandu, kam priekšā ir komandas numurs.

-n

Pārtraucot komandu numurus, kad sarakstā ieraksta ar -l.

-r

Mainīt sarakstā esošo komandu secību (ar - vai rediģēt (ar ne - l nor - s)

-s

Atkārtoti izpildiet komandu, neizmantojot redaktoru.

vispirms

Pēdējais

Atlasiet saraksta vai rediģēšanas komandas. Iepriekšējo komandu skaitu, kurām var piekļūt, nosaka pēc mainīgā HISTSIZE vērtības . Pirmās vai pēdējās vai abas vērtības ir viena no šādām vērtībām:

[+] numurs

Pozitīvs skaitlis, kas norāda komandas numuru; komandu numurus var parādīt ar opciju - l .

-numurs

Negatīvs decimāls skaitlis, kas norāda komandu, kas iepriekš bija izpildījusi komandu skaitu. Piemēram, -1 ir tūlītēja iepriekšējā komanda.

virkne

String, kas norāda pēdējo ievadīto komandu, kas sākas ar šo virkni. Ja arī nav norādīts vecais = jaunais operands, ar - s pirmā operanda virknes forma nevar saturēt iegultu vienādu zīmi.

Turpmāk minētie vides mainīgie ietekmē fc izpildi:

FCEDIT

Lietotājvārda nosaukums.

HISIZĒJIET

Iepriekšējo komandu skaits, kas ir pieejams.

fg [ darbs ]

Pārvietojiet norādīto darbu vai pašreizējo darbu uz priekšplānu.

getopts optstring var

POSIX getopts komandu, ko nedrīkst sajaukt ar Bell Labs- lietotu getopt (1).

Pirmajam argumentam jābūt burtu sērijai, katrai no kurām pēc izvēles var pievienot kolu, lai norādītu, ka opcijai ir vajadzīgs arguments. Norādītais mainīgais ir iestatīts uz parsēto iespēju.

Getopts komandā tiek novērsta vecākā getopt (1) lietderība, jo tiek apstrādāti argumenti, kas satur atstarpes.

Getopts builtin var izmantot, lai iegūtu opcijas un to argumentus no parametru saraksta. Ja tiek aktivizēts, getopts novieto nākamās opcijas vērtību no opcijas virknes sarakstā lodziņa mainā, kuru norādījis var, un tas ir indekss apvalka mainīgajā OPTIND. Kad tiek izmantots apvalks, OPTIND tiek inicializēts uz 1. Katrai opcijai, kurai nepieciešams arguments, getopts builtin to ievietos korpusa mainīgā OPTARG Ja optstring nav opcija, tad OPTARG tiks atiestatīts.

optstring ir atzītu opciju burtu virkne. Ja burtai seko kols, opcijai ir jābūt argumentam, kuru var vai nevar nošķirt no atstarpes. Ja opcijas rakstzīme nav atrasta, ja gaidīts, getopts iestatīs mainīgo var uz ``? '', Tad getopts atiestatīs OPTARG un uzraksta izvadi uz standarta kļūdu. Norādot kolu kā optstring pirmo rakstzīmi, visas kļūdas tiks ignorētas.

Nulles vērtība tiek atgriezta, kad tiek sasniegta pēdējā opcija. Ja nav atlikušo argumentu, getopts iestatīs var uz īpašo opciju, `` - '' pretējā gadījumā tā iestatīs var uz ``? ''

Tālāk redzamais koda fragments parāda, kā var apstrādāt argumentus komandai, kura var izmantot opcijas [a] un [b] un opciju [c], kurai nepieciešams arguments.

kamēr getopts abc: f
dari
gadījums $ f iekšā
a | b) karodziņš = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; izeja 1 ;;
esac
pabeigts
maiņa `expr $ OPTIND - 1`

Šis kods kā ekvivalents pieņem kādu no tālāk minētajiem:

cmd -acarg faila fails
cmd -a -c arg faila fails
cmd -carg -a faila fails
cmd -a -carg - faila fails

hash -rv komanda ...

Korpuss uztur maiņas galdu, kas atceras komandu atrašanās vietas. Bez jebkādiem argumentiem, komandu hash izdrukā šīs tabulas saturu. Ieraksti, kas nav apskatīti kopš pēdējās cd komandas, ir apzīmēti ar zvaigznīti; šie ieraksti ir nederīgi.

Izmantojot argumentus, hash komanda izņem noteiktas komandas no maiņas tabulas (ja vien tās nav funkcijas) un pēc tam tās atrod. Izmantojot -v opciju, hash izdrukā komandu atrašanās vietas, jo tās atrod. R opcija izraisa maiņas komandu, lai izdzēstu visus ierakstus maiņas tabulā, izņemot funkcijas.

jobid [ darbs ]

Izdrukājiet darba procesa procesa ID. Ja darba arguments ir izlaists, pašreizējais darbs tiek izmantots.

darbavietas

Šajā komandā ir uzskaitīti visi fona procesi, kas ir pašreizējā apvalka procesa bērni.

pwd

Drukāt pašreizējo direktoriju. Ievietotā komanda var atšķirties no tā paša nosaukuma programmas, jo builtin komanda atceras, kas ir pašreizējais direktorijs, nevis katru reizi ieskaite. Tas padara to ātrāku. Tomēr, ja pašreizējais direktorijs tiek pārdēvēts, Pwd jaunā versija turpinās izdrukāt veco direktorijas nosaukumu.

lasīt [- p ātri ] [- r ] mainīgais ...

Uzvedne tiek drukāta, ja ir norādīta opcija -p, un standarta ievade ir terminālis. Tad līnija tiek nolasīta no standarta ieejas. No līnijas tiek izdzēsta aizmugurējā jauna līnija, un līnija ir sadalīta, kā aprakstīts sadaļā par vārdu sadalīšanu iepriekš, un gabali tiek piešķirti mainīgajiem lielumiem kārtībā. Jānorāda vismaz viens mainīgais. Ja ir vairāk gabalu nekā mainīgie, atlikušie gabali (kopā ar IFS burtiem, kas tos atdalījuši) ir piešķirti pēdējam mainīgajam. Ja ir vairāk mainīgo nekā gabali, atlikušajiem mainīgajiem ir piešķirta nulles virkne. Izlasē iekļautais rādītājs norāda uz panākumiem, ja vien ievades laikā nav sastopams EOF, tādā gadījumā tiek atgriezta kļūme.

Pēc noklusējuma, ja vien nav norādīta opcija- r , backslash "` \ \ "darbojas kā evakuācijas rakstzīme, izraisot, ka šādu rakstzīmi uztver burtiski. Ja aiz zem slīpsvītras zīmes seko jauna līnija, aizmugures slīpsvītra un jaunā līnija tiek izdzēsti.

tikai lasīt vārdu ...

tikai lasīt-p

Norādītie vārdi ir atzīmēti kā tikai lasīti, lai tos vēlāk nevarētu mainīt vai atiestatīt. Korpuss ļauj iestatīt mainīgā vērtību tajā pašā laikā, kad tas ir atzīmēts kā lasāms tikai rakstiski

tikai lasāms nosaukums = vērtība

Bez argumentiem tikai lasāmā komanda uzskaita visu tikai lasāmo mainīgo nosaukumus. Ar norādīto - p opciju izvades formāts tiks piemērots neinteraktīvai lietošanai.

set [{- options | | + iespējas | - arg ... ]

Iestatītā komanda izpilda trīs dažādas funkcijas.

Bez argumentiem, tajā ir uzskaitīti visu čaulas mainīgo lielumi.

Ja ir dota opcija, tā nosaka izvēles karodziņus vai tos notīra, kā aprakstīts sadaļā Sx Argument List Processing.

Trešā komandas izmantošana ir iestatīt apvalka pozīcijas parametru vērtības norādītajām argām. Lai mainītu pozīcijas parametrus, nemainot nevienu opciju, kā pirmo iestatāmo argumentu izmantojiet `` - ''. Ja nav neviena args, komandas iestatījums notīra visus pozīcijas parametrus (līdzvērtīgs izpildei `` shift $ #. ''

mainīgā vērtība

Piešķir vērtību mainīgajam. (Kopumā labāk rakstīt mainīgo lielumu = vērtību, nevis izmantot setvar setvar ir paredzēts izmantot funkcijās, kuras piešķir vērtības mainīgajiem, kuru nosaukumi ir izlaisti kā parametri.)

maiņa [ n ]

Novietojiet pozīcijas parametrus n reizes. Pāreja nosaka vērtību $ 1, lai vērtība $ 2 vērtība $ 2 ar vērtību $ 3 un tā tālāk, samazinot vērtību $ # par vienu. Ja n ir lielāks par pozīcijas parametru skaitu, pāreja izdos kļūdas ziņojumu un iziet ar atgriešanās statusu 2.

reizes

Izdrukājiet uzkrāto lietotāja un sistēmas laiku korpusam un procesiem, kas tiek darbināti no korpusa. Atgriešanās statuss ir 0.

lamatas darbības signāls ...

Izraisiet čaulu, lai analizētu un izpildītu darbību, kad tiek saņemts kāds no norādītajiem signāliem. Signālus norāda ar signāla numuru. Ja signāls ir 0 , darbība tiek izpildīta, kad čaula iziet. darbība var būt nulle vai `` - '' pirmais izraisa norādītā signāla ignorēšanu, un pēdējais izraisa noklusējuma darbību. Kad apvalks noņem dublējumu , tas no jauna ieslēdz (nevis ignorē) signālus noklusējuma darbībai. Slazdošanas komanda neietekmē signālus, kas tika ignorēti ieejot korpusā.

tips [ nosaukums ... ]

Interpretējiet katru vārdu kā komandu un izdrukājiet komandu meklēšanas rezolūciju. Iespējamās rezolūcijas ir: čaulas atslēgvārds, pseidonīms, čaulas builtin , komanda, izsekotais aizstājvārds un nav atrasts. Pseidonīmiem tiek izdrukāts alias paplašinājums; Komandām un izsekotajām aliases tiek izdrukāts komandas pilns nosaukums.

ulimit [ -H-S ] [ -a -tfdscmlpn [ value ]]

Jautājiet par grūti vai mīkstiem procesa ierobežojumiem vai iestatiet jaunus ierobežojumus. Izvēle starp grūti ierobežojumu (kuru neviens process nav atļauts pārkāpt un ko nevar uzcelt, kad tas ir pazemināts) un mīksto robežu (kas liek procesus signalizēt, bet ne vienmēr nogalina un kurus var paaugstināt) tiek veikta ar šie karogi:

-H

noteikt vai noskaidrot grūti ierobežojumus

-S

noteikt vai noskaidrot mīksto robežu. Ja nav norādīts nedz - H, n - S , tiek parādīts mīkstais ierobežojums vai noteikti abi ierobežojumi. Ja abi ir norādīti, pēdējais uzvar.

Pēcpārbaudes vai iestatīšanas limits tiek izvēlēts, norādot vienu no šiem karodziņiem:

-a

parādīt visas pašreizējās robežas

-t

parādīt vai iestatīt CPU laika limitu (sekundēs)

-f

parādīt vai iestatīt ierobežojumu lielākajam failam, ko var izveidot (512 baitu blokos)

-d

parādīt vai iestatīt procesa datu segmenta lieluma ierobežojumu (kilobaitos)

-s

parādiet vai iestatiet procesa kaudzes lieluma limitu (kilobaiti)

-c

parādīt vai iestatīt lielāko izmēru lielāko kodola izmēru (512 baitu blokos)

-m

parādiet vai iestatiet limitu kopējai fiziskajai atmiņai, ko process var izmantot (kilobaitos)

-l

parādiet vai iestatiet limitu, cik daudz atmiņas process var bloķēt ar mlock (2) ( kilobaiti )

-p

parādiet vai iestatiet ierobežojumus procesam, cik šis lietotājs var būt vienlaicīgi

-n

rādīt vai iestatīt ierobežojumu skaitļu failiem, kuru process var būt atvērts uzreiz

Ja neviens no šiem parametriem nav norādīts, tas ir faila lielums, kas tiek parādīts vai iestatīts. Ja ir norādīta vērtība, šis skaitlis ir noteikts; pretējā gadījumā tiks parādīts pašreizējais ierobežojums.

Piespiedu procesa ierobežojumus var parādīt vai iestatīt, izmantojot sysctl (8) lietderību.

umask [ maska ]

Iestatiet umaska ​​vērtību (sk. Umask (2)) uz norādīto astoņu vērtību. Ja arguments ir izlaists, umask vērtība tiek izdrukāta.

unalias [ -a ] [ vārds ]

Ja nosaukums ir norādīts, apvalks noņem šo pseidonīmu. Ja - a ir norādīts, visi pseidonīmi tiek noņemti.

nenozīmēts nosaukums ...

Noteiktie mainīgie lielumi un funkcijas ir iestatītas un neeksportētas. Ja vārds atbilst gan mainīgajam, gan funkcijai, mainīgais un funkcija nav iestatīti.

pagaidiet [ darbs ]

Pagaidiet, kamēr konkrētais darbs tiks pabeigts un atgriezīsit darba pēdējā procesa izejas statusu. Ja arguments ir izlaists, pagaidiet, līdz pabeidz visas darba vietas, un atgriezieties nulles izejas stāvoklī.

Komandrindas rediģēšana

Kad sh tiek izmantots interaktīvi no termināļa, pašreizējo komandu un komandu vēsturi (sk. Fc Sx Builtins) var rediģēt, izmantojot vi-mode komandrindas rediģēšanu. Šajā režīmā tiek izmantotas tālāk aprakstītas komandas, kas ir līdzīgas tām aprakstvienībām, kas aprakstītas rokasgrāmatas lapā. Komandu "set" -o vi aktivizē vi-mode rediģēšanu un ievieto sh uz vi ievietošanas režīmu. Izmantojot vi-mode, sh var pārslēgties starp ievietošanas režīmu un komandu režīmu. Redaktors šeit nav aprakstīts pilnībā, bet būs vēlāk dokumentā. Tas ir līdzīgs vi: ierakstot Aq ESC, jūs ievadīsiet komandu VI komandu režīmā. Hitting Aq atgriešanās, kamēr komandu režīmā, iet līniju uz korpusu.

Svarīgi: izmantojiet vīriešu komandu ( % man ), lai redzētu, kā komanda tiek izmantota jūsu konkrētajā datorā.