Cindro - Linuksa Komando - Unikso Komando

NAME

sh - komando interpretisto ( ŝelo )

SYNOPSIS

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

PRISKRIBO

Sh estas la norma komand-interpretilo por la sistemo. La nuna versio de sh estas en la procezo ŝanĝiĝi por laŭigi la specifajn POSIX 1003.2 kaj 1003.2a por la ŝelo. Ĉi tiu versio havas multajn trajtojn, kiuj ŝajnas esti similaj en iuj aspektoj al la Korn-ŝelo, sed ĝi ne estas Korn-ŝelo-klono (vidu ksh (1)). Nur trajtoj nomumitaj per POSIX plus kelkaj Berkeley-etendoj, estas korpigitaj en ĉi tiun ŝelon. Ni atendas POSIX- konformon de la tempo 4.4 BSD liberigita. Ĉi tiu paĝo ne intencas esti lernilo aŭ kompleta specifaĵo de la ŝelo.

Superrigardo

La ŝelo estas komando kiu legas liniojn de aŭ dosiero aŭ fina stacio, interpretas ilin, kaj ĝenerale ekzekutas aliajn komandojn. Ĝi estas la programo, kiu funkcias kiam uzanto ensalutas en la sistemon (kvankam uzanto povas elekti malsaman ŝelon kun la komando chsh (1). La ŝelo implementas lingvon, kiu havas kontrolon de fluo, macro-instalaĵo, kiu provizas diversajn trajtojn krom stokado de datumoj, kune kun historiaj konstruaĵoj kaj linio redaktado. Ĝi korpigas multajn trajtojn por helpi interagan uzon kaj havas la avantaĝon, ke la interpretiga lingvo estas komuna por interaga kaj ne-interaga uzo (ŝlosilkriptoj). Tio estas, komandoj povas tajpi rekte al la kuranta ŝelo aŭ povas esti enmetitaj en dosieron kaj la dosieron povas esti ekzekutita rekte per la ŝelo.

Alvoko

Se ne ekzistas args kaj se la norma enigo de la ŝelo estas konektita al fina stacio (aŭ se la - i flago estas aro), kaj la opcio - c ne ĉeestas, la ŝelo estas konsiderata interaga ŝelo . Interaga ŝelo ĝenerale instigas antaŭ ĉiu komando kaj manipulas programojn kaj komandajn erarojn malsame (kiel priskribita sube). Kiam unue komenciĝas, la ŝelo inspektas argumenton 0, kaj se ĝi komenciĝas per dash `- 'la ŝelo ankaŭ estas konsiderata ensaluto. Ĉi tiu kutime fariĝas aŭtomate fare de la sistemo, kiam la uzanto unue ensalutas. Ensalutilo unue legas ordonojn de la dosieroj / ktp / profilo kaj. Profilo se ili ekzistas. Se la medio-variablo ENV estas enmetita al enkonstrua ŝelo, aŭ estas en la .profile ensalutilo, la ŝelo poste legas ordonojn de la dosiero nomata en ENV Sekve, uzanto devas meti komandojn, kiuj devas esti ekzekutitaj nur ĉe ensaluti tempon en la .profile dosiero, kaj ordonoj, kiuj estas ekzekutitaj por ĉiu ŝelo ene de la ENV- dosiero. Por agordi la ENV- variablon al iu dosiero, metu la sekvan linion en vian profilon de via hejma dosierujo

ENV = $ HOME /. Shinit; eksporti ENV

anstataŭigante `` .shinit '' ajn ajn dosiernomon, kiun vi deziras. Ĉar la ENV- dosiero estas legata por ĉiu alvoko de la ŝelo, inkluzive de ŝlosilkriptoj kaj ne-interagaj konkoj, la sekva paradigma utilas por limigo de komandoj en la ENV- dosiero al interagaj alvokoj. Loku komandojn ene de '`kazo' ' kaj` ` esac ' 'sube (ĉi tiuj komandoj estas priskribitaj poste):

kazon $ - en * i *)

#komandoj por interaga uzo nur

...

esac

Se komandaj argumentoj krom la ebloj estas specifitaj, tiam la ŝelo traktas la unuan argumenton kiel la nomon de dosiero el kiu legi komandojn (ŝela skripto), kaj la ceteraj argumentoj estas difinitaj kiel la poziciaj parametroj de la ŝelo ($ 1 , $ 2, ktp). Alie, la ŝelo legas ordonojn de ĝia norma enigo.

Argumenta Listo Procezo

Ĉiuj elektoj de unuopa litero havas respondan nomon, kiu povas esti uzata kiel argumento al la - o opcio. La aro - o nomo estas provizita apud la sola litero-eblo en la priskribo sube. Specifante dash `` - '' turnas la opcion, kaj uzante pli '`+' 'malŝaltas la eblon. La jenaj elektoj povas esti agorditaj de la komandlinio aŭ kun la aro (1) konstruita (priskribita poste).

-a alportporto

Eksporti ĉiujn variablojn atribuitajn al. (Senpaga por 4.4alpha)

-c

Legu komandojn de la komandlinio. Neniu ordono estos legita de la norma enigo.

-C noclobber

Ne anstataŭigu ekzistantajn dosierojn kun ``> '' (Senpagaj por 4.4alpha)

-e errexit

Se ne interaga, eliru tuj se iu ajn neestesta komando malsukcesas. La eliro-statuso de komando konsideras eksplicite provita se la komando estas uzata por kontroli se elif dumĝis aŭ se la komando estas la maldekstra operacio de `` && '' aŭ `` || '' operatoro.

-f noglob

Malebligu la nomon-ekspansion.

-n noexec

Se ne interagaj, legu komandojn, sed ne ekzekutu ilin. Ĉi tio estas utila por kontrolanta la sintakson de ŝlosilkriptoj.

-u substantivo

Skribu mesaĝon al norma eraro kiam vi provos etendi variablon, kiu ne estas aro, kaj se la ŝelo ne estas interaga, eliru tuj. (Senpaga por 4.4alpha)

-v verbose

La ŝelo skribas sian enigon al norma eraro kiel ĝi legas. Utila por elpurigado.

-x xtrace

Skribu ĉiun komandon al norma eraro (antaŭita de `+ 'antaŭ ol ĝi estas ekzekutita) Utila por elpurigado.

-q trankvila profilo

Se la - v aŭ - x- opcioj estas agorditaj, ne apliku ilin, kiam ili legas komenca dosierojn, ĉi tiuj estas / ktp / profilo. Profilo kaj la dosiero difinita de la ENV- variablo.

-Mi ignoras

Ignori EOF de enigo kiam interaga.

-i interagaj

Fortigu la ŝelon por konduti interagie.

-m monitoro

Iru laborpostrolon (agordi aŭtomate kiam interaga).

-s stdin

Legu komandojn de norma enigo (agordi aŭtomate se neniu dosiero-argumentoj ĉeestas). Ĉi tiu opcio havas nenian efikon kiam oni starigis post kiam la ŝelo jam funkciis (te kun aro (1)).

-V vi

Ebligu la redaktitan vi (1) komandlinia redaktilo (malŝaltas - E se ĝi estis aro).

-E- emakso

Ebligu la emaksa redaktilon emacs (1) komandlinia redaktilo (malŝaltas - V se ĝi estis aro).

-b sciigu

Ebligu asincrona sciigo pri fona laboro-finaĵo. (Senpaga por 4.4alpha)

Leksika Strukturo

La ŝelo legas enigo laŭ terminoj de dosiero kaj rompas ĝin en vortojn en spaco (blankaj kaj pestañas), kaj ĉe certaj sekvencoj de karakteroj specialaj al la ŝelo nomata `` operatoroj '' Estas du specoj de operatoroj: Kontrolistoj kaj redirektaj operatoroj (ilia signifo diskutas poste). Sekvanta estas listo de operatoroj:

"Kontrolistoj:"

& && (); ;; | ||

"Redirekt-operatoro:"

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

Citante

Citado uzas por forigi la specialan signifon de iuj signoj aŭ vortoj al la ŝelo, kiel ekzemple telefonistoj, spacoj, aŭ ŝlosilvortoj. Ekzistas tri specoj de citaĵo: egalitaj unuopaĵoj, egalitaj duoblaj citaĵoj kaj backslash.

Backslash

Backslash konservas la laŭvortan signifon de la sekva karaktero, escepte de Aq nova linio. Backslash antaŭ ol nova linio estas traktita kiel linio daŭrigo.

Single Quotes

Enkalkulanta signojn en unuopa citaĵo konservas la laŭvortan signifon de ĉiuj karakteroj (krom unuopaĵoj, farante ĝin neebla meti ununurajn kotizojn en unu-citita ĉeno).

Duoblaj Kotizoj

Enkalkulanta signojn ene de duoblaj citaĵoj konservas la laŭvortan signifon de ĉiuj karakteroj krom dollarsign ($) backquote (') kaj backslash (\) La backslash ene de duoblaj citaĵoj estas historie stranga, kaj utilas por citi nur la jenajn signojn:

$ `\

Alie ĝi restas laŭvorta.

Rezervitaj Vortoj

Rezervitaj vortoj estas vortoj, kiuj havas specialan signifon al la ŝelo kaj estas rekonitaj komence de linio kaj post kontrolo-operatoro. La jenaj estas rezervitaj vortoj:

! Ta laif Ta fi Ta dum Ta kazo

alia Ta por Ta tiam Ta {Ta}

fari Ta faris Ta ĝis Ta se Ta esac

Ilia signifo diskutas poste.

Aliasoj

Alias ​​estas nomo kaj responda valoro aro uzante la alias (1) konstruita komando. Ĉiufoje kiam rezervita vorto povas okazi (vidu supre), kaj post kontrolanta rezervajn vortojn, la ŝelo verŝas la vorton por vidi ĉu ĝi kongruas kun alias. Se ĝi faras, ĝi anstataŭas ĝin en la eniga fluo kun ĝia valoro. Ekzemple, se estas alias nomita `` lf '' kun la valoro `` ls -F '' tiam la enigo:

lf foobar

fariĝus

ls -F foobar

Aliasoj provizas oportunan vojon por naivaj uzantoj krei komercajn manlibrojn por komandoj sen devi lerni kiel krei funkciojn kun argumentoj. Ili ankaŭ povas esti uzataj por krei leksike malklaran kodon. Ĉi tiu uzo estas senkuraĝigita.

Komandoj

La ŝelo interpretas la vortojn, kiujn ĝi legas laŭ lingvo, kies specifaĵo estas ekster la medio de ĉi tiu paĝo (referu al la BNF en la dokumento POSIX 1003.2). Esence tamen, oni legas linion kaj se la unua vorto de la linio (aŭ post kontrolo-operatoro) ne estas rezervita vorto, tiam la ŝelo rekonis simplan komandon. Alie, kompleksa komando aŭ iu alia speciala konstruaĵo eble estis agnoskita.

Simplaj Komandoj

Se simpla komando estas agnoskita, la ŝelo plenumas la jenajn agojn:

  1. Ĉefaj vortoj de la formo `` name = value '' estas forigitaj kaj atribuitaj al la medio de la simpla komando. Redirección-operatoroj kaj iliaj argumentoj (kiel priskribitaj sube) estas forĵetitaj kaj konservitaj por prilaborado.
  2. La ceteraj vortoj ekspansiiĝas kiel priskribitaj en la sekcio nomata `'Ekspansioj' kaj la unua cetera vorto estas konsiderata kiel komandnomomo kaj la komando situas. La ceteraj vortoj konsideras la argumentojn de la komando. Se neniu komando-nomo rezultiĝis, tiam la ŝanĝiĝemaj atribuoj '`name = value' 'en ero 1 efikas la nunan ŝelon.
  3. Redirektoj estas plenumitaj kiel priskribitaj en la sekva sekcio.

Redirektoj

Redirektoj estas uzataj por ŝanĝi, kie komando legas sian enigon aŭ sendas sian eliron. Ĝenerale, redirektoj malfermiĝas, fermas aŭ duobligas ekzistantan referencon al dosiero. La ĝenerala formato uzita por redirektado estas:

[n] redir-op-dosiero

kie redir-op estas unu el la redirektaj operatoroj menciitaj antaŭe. Sekvanta estas listo de la eblaj redirektoj. La Bq n estas laŭvola nombro, kiel en '3' (ne 'Bq 3', kiu rilatas al dosiero-priskribilo.

[n]> dosiero

Alidirekta norma eligo (aŭ n) por dosiero.

[n]> | dosiero

Same, sed anstataŭigu la - C opcion.

[n] >> dosiero

Agordu norma eligo (aŭ n) por dosiero.

[n]

Alidirekta norma enigo (aŭ n) el dosiero.

[n1] <& n2

Dupliku norman enigon (aŭ n1) el dosiero-priskribilo n2.

[n] <& -

Fermi norma enigo (aŭ n).

[n1]> & n2

Dupliku norma eligo (aŭ n1) el n2.

[n]> & -

Fermi norma eligo (aŭ n).

[n] <> dosiero

Malferma dosiero por legi kaj skribi sur norma enigo (aŭ n).

La sekva redirekto ofte nomiĝas `'ĉi tie-dokumento' '

[n] << delimitoro

ĉi-doc-teksto ...

delimitilo

La tuta teksto en pluaj linioj ĝis la delimitilo estas savita kaj disponebla al la komando sur norma enigo aŭ dosier-priskribilo se ĝi estas specifita. Se la limigilo kiel estas specifita sur la komenca linio estas citita, tiam la ĉi-doc-teksto estas traktita laŭvorte, alie la teksto estas submetita al parametro-ekspansio, anstataŭigo de komandoj kaj aritmetika ekspansio (kiel priskribita en la sekcio sur '' Ekspansioj '). 'Se la telefonisto estas `` << -' 'anstataŭ `` <<' 'tiam gvidaj pestañas en ĉi tie-doc-teksto estas forigitaj.

Serĉo kaj Ekzekuto

Ekzistas tri tipoj de komandoj: ŝeloj, komandoj konstruitaj kaj normalaj programoj - kaj la komando estas serĉata (laŭ nomo) en tiu ordo. Ili ĉiuj estas ekzekutitaj de alia maniero.

Kiam ŝela funkcio estas ekzekutita, ĉiuj elĵetaj poziciaj parametroj (krom $ 0, kiuj restas senŝanĝaj) estas agorditaj al la argumentoj de la ŝelo-funkcio. La variabloj, kiuj estas eksplicite metitaj en la medio de la komando (per aldono al ili antaŭ la funkcia nomo) estas faritaj lokaj al la funkcio kaj estas laŭmetitaj al la valoroj donitaj. Tiam la komando donita en la funkcio difino estas ekzekutita. La poziciaj parametroj estas restarigitaj al siaj originalaj valoroj kiam la komando kompletigas. Ĉio ĉi okazas ene de la nuna ŝelo.

Ŝelo-konstruaĵoj estas ekzekutitaj interne al la ŝelo, sen generi novan procezon.

Alie, se la komando-nomo ne kongruas kun funkcio aŭ konstruita, la komando estas serĉata kiel normala programo en la dosieroj (kiel priskribita en la sekva sekcio). Kiam normala programo estas ekzekutita, la ŝelo kuras la programon, pasante la argumentojn kaj la medion al la programo. Se la programo ne estas normala ejektivebla dosiero (tio estas, se ĝi ne komenciĝas per la "magia nombro", kies ASCII- reprezentado estas "#!", Tiel ke Execve (2) revenas al Er ENOEXEC tiam) la ŝelo interpretos la programon en subshello. La infana ŝelo rekomenciĝos en ĉi tiu kazo, tiel ke la efiko estos kvazaŭ nova ŝelo estis alpreĝita por manipuli la ad-hoc-ŝelon-skripton, escepte ke la loko de lardaj ordonoj situantaj en la gepatra ŝelo estos memorita de la infano.

Rimarku, ke antaŭaj versioj de ĉi tiu dokumento kaj la fonta kodo mem misleadingly kaj sporade raportas al ŝelo-skripto sen magia nombro kiel "konforma proceduro".

Pado-serĉo

Kiam vi lokas komandon, la ŝelo unue rigardas, ĉu ĝi havas ŝelon funkcion per tiu nomo. Tiam ĝi serĉas konstruitan komandon per tiu nomo. Se konstruita komando ne troveblas, unu el la du aferoj okazas:

  1. Komandaj nomoj enhavantaj slash estas simple ekzekutitaj sen realigi ajnajn serĉojn.
  2. La ŝelo serĉas ĉiun eniron en PATH en turno por la komando. La valoro de la variablo PATH devus esti serio de eniroj disigitaj de kolonoj. Ĉiu eniro konsistas el dosierujo. La nuna dosierujo povas esti indikita implicite per malplena dosierujo, aŭ eksplicite per unu sola periodo.

Komando Elirejo

Ĉiu komando havas eliron, kiu povas influi la konduton de aliaj konkoj. La paradigmo estas, ke komando eliras kun nulo por normala aŭ sukceso, kaj ne-nulo pro fiasko, eraro aŭ falsa indiko. La paĝo de homo por ĉiu komando devus indiki la diversajn elkodojn kaj kion ili signifas. Aldone, la konstruaj komandoj redonas elkodojn, kiel ekzekutita ŝelo funkcio.

Kompleksaj Komandoj

Kompleksaj komandoj estas kombinaĵoj de simplaj komandoj kun kontrolo-operatoroj aŭ rezervitaj vortoj, kune kreante pli grandan kompleksan komandon. Pli ĝenerale, komando estas unu el la sekvaj:

  • simpla komando
  • dukto
  • listo aŭ komponaĵo-listo
  • komandita komando
  • funkcio difino

Krom se alie deklarita, la eliro-statuso de komando estas tiu de la lasta simpla komando ekzekutita de la komando.

Tuboj

Du-dukto estas sekvenco de unu aŭ pli da komandoj apartigitaj de la komandila operatoro. La norma eligo de ĉiuj sed la lasta komando estas konektita al la norma enigo de la sekva komando. La norma eligo de la lasta komando estas heredita de la ŝelo, kiel kutime.

La formato por dukto estas:

[!] komando1 [| komando2 ...]

La norma eligo de komando1 estas konektita al la norma enigo de komando2. La norma enigo, norma eligo, aŭ ambaŭ komando estas konsiderata atribuata per la tubo antaŭ iu ajn redirekto specifita de redirektaj operatoroj, kiuj estas parto de la komando.

Se la tubo ne estas en la fono (diskutita poste), la ŝelo esperas, ke ĉiuj komandoj kompletigu.

Se la rezervita vorto! ne antaŭas la dukton, la eliro estas la statuso de eliro de la lasta komando specifita en la dukto. Alie, la eliro-statuso estas la logika NOT de la eliro-statuso de la lasta komando. Tio estas, se la lasta komando redonas nulon, la eliro-statuso estas 1; se la lasta komando revenas pli granda ol nulo, la eliro estas nulo.

Ĉar pipeline-asigno de norma enigo aŭ norma eligo aŭ ambaŭ okazas antaŭ redirekto, ĝi povas esti modifita per redirektado. Ekzemple:

$ command1 2> & 1 | komando2

sendas la norman eliron kaj norman eraron de komando1 al la norma enigo de komando2.

A; aŭ terminator kaŭzas la antaŭan AND-OR-liston (priskribitan tuj poste) esti ekzekutita sekve; & kaŭzas asincrona ekzekuto de la antaŭa AND-OR-listo.

Rimarku, ke kontraste kun aliaj ŝeloj, ĉiu procezo en la dukto estas infano de la invokanta ŝelo (krom se ĝi estas ŝelo konstruita, en kies kazo ĝi ekzekutas en la nuna ŝelo - sed ia efiko sur la medio estas forigita).

Fona Komandoj -

Se komando funkciigas la komandan komandilon ampersand (&), la ŝelo ekzekutas la komandon sinkrone - tio estas, la ŝelo ne atendas ke la komando finu antaŭ ol ekzekuti la sekvantan komandon.

La formato por kuranta komandon en fono estas:

komando1 & [komando2 & ...]

Se la ŝelo estas ne interaga, la norma enigo de asincrona komando estas fiksita al / dev / null

Listo - Ĝenerale Parolanta

Lerta estas sekvenco de nulo aŭ pli da komandoj disigitaj de lineoj, semikolonoj aŭ vindotukoj, kaj laŭvole finita per unu el ĉi tiuj tri karakteroj. La ordonoj en listo estas ekzekutitaj laŭ la ordo, kiun ili estas skribitaj. Se komando estas sekvita de kombinaĵo, la ŝelo komencas la komandon kaj tuj iru al la sekva komando; alie ĝi atendas la ordonon fini antaŭ iri al la sekva.

Short-Circuit List Operators

`` && '' kaj `` || '' estas listoj de AND-OR-operatoroj. `` && '' ekzekutas la unuan komandon, kaj tiam ekzekutas la duan komandon se la eliro de la unua komando estas nulo. `` || '' estas simila, sed ekzekutas la duan komandon se la eliro-statuso de la unua komando estas neero. `` && '' kaj `'||' 'ambaŭ havas la saman prioritaton.

Fluo-Kontrolo Konstruas - se, dum, por, kazo

La sintakso de la komando estas

se listo
tiam listo
[elif listo
tiam listo] ...
[alia listo]
fi

La sintakso de la komando estas

dum listo
fari liston
farita

La du listoj estas ekzekutitaj ree dum la eliro-statuso de la unua listo estas nulo. La komando estas simila, sed havas la vorton ĝis anstataŭ la tempo, kio kaŭzas ke ĝi ripetu ĝis la statuso de eliro de la unua listo estas nulo.

La sintakso de la komando estas

por variablo laŭ vorto ...
fari liston
farita

La vortoj ekspansiiĝas, kaj tiam la listo estas ekzekutita ree kun la variablo aro al ĉiu vorto laŭvice. fari kaj farita povas esti anstataŭigita per `` {'' kaj ``} ''

La sintakso de la rompo kaj daŭra komando estas

rompi [num]
daŭrigu [num]

Rompi finas la numeron plej bone por aŭ dum bukloj. Daŭrigu kun la sekva ripeto de la plej interna ciklo. Ĉi tiuj estas aplikitaj kiel konstruaj komandoj.

La sintakso de la afero estas

Kaza vorto en
ŝablono) listo ;;
...
esac

La ŝablono povas efektive esti unu aŭ pli da ŝablonoj (vidu Ŝablonaj Ŝablonoj priskribitaj poste), apartigitaj per `` '' karakteroj.

Grupoj Komandoj kune

Komandoj povas esti grupigitaj per skribado ĉu

(listo)

{ listo;

La unua el ĉi tiuj ekzekutas la ordonojn en subshello. Builtin-komandoj grupigitaj en (listo) ne influos la nunan ŝelon. La dua formo ne forkas alian ŝelon tiel iomete pli efika. Grupoj komandoj kune ĉi tie permesas alidirektigi sian eliron kvazaŭ ili estis unu programo:

{printf saluton; printf world \ n ";}> saluto

Funkcioj

La sintakso de funkcio difino estas

nomo () komando

Funkcia difino estas ejecutabla deklaro; kiam ĝi estas ekzekutita, ĝi funkciigas funkcion nomitan nomon kaj redonas statuson de eliro de nulo. La komando kutime estas listo ligita al `` {'' kaj ``} ''

Variabloj povas esti deklaritaj kiel lokaj al funkcio per loka komando. Ĉi tio devus aperi kiel la unua deklaro de funkcio, kaj la sintakso estas

loka [variablo | -] ...

Loka efektivigas kiel konstruita komando.

Kiam variablo estas farita loka, ĝi heredas la komencan valoron kaj eksportis kaj leĝe flagojn de la variablo kun la sama nomo en la ĉirkaŭa medio, se ekzistas unu. Alie, la variablo estas komence malŝaltita. La ŝelo uzas dinamikan skopadon, por ke se vi faras la variablon x lokan funkcii f, kiu tiam vokas funkcion g, referencoj al la variablo x farita ene g raportos al la variablo x deklarita ene f, ne al la tutmonda variablo nomata x .

La sola speciala parametro ol oni povas fari loka estas `` - '' Faranta `` - '' lokan ajn ŝelon-elektojn, kiuj estas ŝanĝitaj per la aro-komando ene de la funkcio por esti restarigita al siaj originalaj valoroj kiam la funkcio redonas.

La sintakso de la redono estas

revenu [eliro]

Ĝi finas la aktualan funkcion. Reveno estas efektivigita kiel konstruita komando.

Variabloj kaj parametroj

La ŝelo subtenas aron de parametroj. Parametro denotata per nomo estas (nomita, vokis) variablo. Al la funkciigi, la ŝelo turnas ĉiujn mediajn variablojn en ŝelajn variablojn. Novaj variabloj povas esti agorditaj per la formo

nomo = valoro

Variabloj difinitaj de la uzanto devas havi nomon konsistantan nur de alfabeto, nombroj kaj subdiskoj - la unua el kiu ne devas esti nombra. Parametro ankaŭ povas esti indikita per nombro aŭ speciala karaktero kiel estas klarigita sube.

Poziciaj parametroj

Pozicia parametro estas parametro indikita per nombro (n> 0). La ŝelo agordas ĉi tiujn komence al la valoroj de ĝiaj komandliniaj argumentoj, kiuj sekvas la nomon de la ŝelo-skripto. La aro (1) konstruita ankaŭ povas esti uzata por agordi aŭ restarigi ilin.

Specialaj parametroj

Speciala parametro estas parametro indikita per unu el la sekvaj specialaj signoj. La valoro de la parametro estas listigita apud sia karaktero.

*

Ekspansiiĝas al la poziciaj parametroj, komencante de unu. Kiam la ekspansio okazas ene de duobla citita ŝnuro, ĝi ekspansiiĝas al ununura kampo kun la valoro de ĉiu parametro disigita de la unua karaktero de la variablo IFS , aŭ per se IFS malŝaltas.

@ @

Ekspansiiĝas al la poziciaj parametroj, komencante de unu. Kiam la ekspansio okazas ene de duoblaj citaĵoj, ĉiu pozicia parametro ekspansiiĝas kiel aparta argumento. Se ne ekzistas parametroj posiciaj, la ekspansio de @ generas nulajn argumentojn, eĉ kiam @ estas duobla citita. Kion ĉi tio signifas, ekzemple, estas se $ 1 estas `` abc '' kaj $ 2 estas `` def ghi '' tiam Qq $ @ etendas al la du argumentoj:

abc def ghi

N

Ekspansiiĝas al la nombro de poziciaj parametroj.

?

Ekspansiiĝas al la eliro-statuso de la plej freŝa dukto.

- (Streketo.)

Ekspansiiĝas al la nuna opcio flagoj (la ununura opcio nomiĝas concatenitaj en ĉenon) kiel specifis la alvoko, per la aro konstruita komando, aŭ implicite per la ŝelo.

$

Ekspansiiĝas al la proceza ID de la alpreĝita ŝelo. Subloŝipo konservas la saman valoron de $ kiel ĝia patro.

!

Ekspansiiĝas al la proceza ID de la plej freŝa fona komando ekzekutita de la nuna konko. Por dukto, la proceza ID estas tiu de la lasta komando en la dukto.

0 (nulo.)

Ekspansiiĝas al la nomo de la ŝelo aŭ ŝelo skripto.

Vortaj Ekspansioj

Ĉi tiu klaŭzo priskribas la diversajn ekspansiojn realigitajn per vortoj. Ne ĉiuj ekspansioj estas faritaj laŭ ĉiu vorto, kiel oni poste klarigas.

Tilde-ekspansioj, parametraj ekspansioj, komandaj anstataŭigoj, aritmetikaj ekspansioj, kaj citaĵoj, kiuj okazas ene de unu vorto, ekspansiiĝas al sola kampo. Ĝi estas nur kampo dividanta aŭ pomnova ekspansio, kiu povas krei plurajn kampojn de sola vorto. La sola escepto al ĉi tiu regulo estas la ekspansio de la speciala parametro @ ene de duobla kotizo, kiel estis priskribita supre.

La ordo de vorto ekspansio estas:

  1. Tilde Ekspansio, Parametra Ekspansio, Komando Anstataŭigo, Aritmetika Ekspansio (ĉi tiuj ĉiuj okazas samtempe).
  2. Field Splitting estas farita sur kampoj generitaj de paŝo (1) krom se la variablo IFS estas nula.
  3. Ekspansio de nomnomo (krom se aro - f estas en efiko).
  4. Citaĵo Forigo.

La $ karaktero estas uzata por enkonduki parametro-ekspansion, anstataŭan komandon aŭ aritmetikan taksadon.

Tilde Expansion (anstataŭigante la hejm-dosierujon de uzanto)

Vorto komencanta kun unototed tilde karaktero (~) estas submetita al tilde-ekspansio. Ĉiuj signoj ĝis slash (/) aŭ la fino de la vorto estas traktataj kiel uzantnomo kaj estas anstataŭitaj per la hejma dosierujo de la uzanto. Se la uzantnomo mankas (kiel en ~ / foobar) la tilde estas anstataŭigita per la valoro de la HOME- variablo (la hejma dosierujo de la aktuala uzanto).

Parametra Ekspansio

La formato por parametro-ekspansio estas kiel sekvas:

kie esprimo konsistas el ĉiuj karakteroj ĝis la kongruaj ``} '' Iu ajn ''} '' eskapita de malantaŭa aŭ en kotizita ĉeno, kaj karakteroj en enigita enitetikaj ekspansioj, komandaj anstataŭaĵoj kaj variaj ekspansioj ne estas ekzamenitaj en la determinado de la kongrui ``} ''

La plej simpla formo por parametra ekspansio estas:

La valoro, se iu, de parametro estas anstataŭigita.

La nomo aŭ simbolo de parametroj povas esti ĉirkaŭigitaj en krampoj, kiuj estas laŭvolaj krom poziciaj parametroj kun pli ol unu cifero aŭ kiam parametro estas sekvata de karaktero, kiu povus esti interpretita kiel parto de la nomo. Se parametra ekspansio okazas ene de duoblaj citaĵoj:

  1. Povnomo-ekspansio ne fariĝas sur la rezultoj de la ekspansio.
  2. Kampo dividado ne estas plenumita sur la rezultoj de la ekspansio, escepte de @.

Krome, parametro-ekspansio povas esti modifita per unu el la sekvaj formatoj.

Uzi Defaŭlta Valoro. Se parametro estas malfiksita aŭ nula, la ekspansio de vorto estas anstataŭigita; alie, la valoro de parametro estas anstataŭigita.

Asigni Defaŭlta Valoroj. Se parametro estas malŝaltita aŭ nula, la ekspansio de vorto estas atribuita al parametro. En ĉiuj kazoj, la fina valoro de parametro estas anstataŭigita. Nur variabloj, ne poziciaj parametroj aŭ specialaj parametroj, povas esti atribuitaj de ĉi tiu maniero.

Indiku Eraron se Nenio aŭ Malŝaltas. Se parametro estas malŝaltita aŭ nula, la ekspansio de la vorto (aŭ mesaĝo indikanta ĝin malŝaltas, se la vorto estas preterlasita) estas skribita al norma eraro kaj la ŝelo eliras kun nea elirejo. Alie, la valoro de parametro estas anstataŭigita. Interaga ŝelo ne bezonas foriri.

Uzi Alternativan Valoron. Se parametro estas malŝaltita aŭ nula, nula estas anstataŭigita; alie, la ekspansio de vorto estas anstataŭigita.

En la parametraj ekspansioj montritaj antaŭe, uzado de la kolono en la formato rezultigas teston por parametro, kiu estas malfiksita aŭ nula; omisión de la kolono rezultigas provon por parametro, kiu nur malkontestas.

Stringo Longo. La longo en karakteroj de la valoro de parametro.

La sekvaj kvar variaĵoj de parametra ekspansio provizas por subpremanta prilaborado. En ĉiu kazo, mastruma notacio (vidu Shell Patterns), prefere ol regula espriman notacion, estas uzata por taksi la ŝablonojn. Se parametro estas * aŭ @, la rezulto de la ekspansio estas ne specifita. Enkalkuli la plenan parametran ekspansion en duoblaj citaĵoj ne kaŭzas la sekvajn kvar variaĵojn de ŝablonaj signoj cititaj, dum kiu citi karakterojn ene de la krampoj havas ĉi tiun efikon.

Forigi Plej Malgrandan Sufiĉan Skemon. La vorto ekspansiiĝas por produkti ŝablonon. La parametro-ekspansio tiam rezultigas parametron, kun la plej malgranda parto de la sufikso egalita per la ŝablono forigita.

Forigi Plej Superan Ŝablonon. La vorto ekspansiiĝas por produkti ŝablonon. La parametra ekspansio tiam rezultigas parametron, kun la plej granda parto de la sufikso egalita per la ŝablono forigita.

Forigi Plej Malgrandan Prezon. La vorto ekspansiiĝas por produkti ŝablonon. La parametra ekspansio tiam rezultigas parametron, kun la plej malgranda parto de la prefikso egalita per la ŝablono forigita.

Forigi Plejpartan Lokan Ŝablonon. La vorto ekspansiiĝas por produkti ŝablonon. La parametro-ekspansio tiam rezultigas parametron, kun la plej granda parto de la prefikso egalita per la ŝablono forigita.

Komandoŝanĝo

Komando anstataŭigas la eliron de komando esti anstataŭigita anstataŭ la komandomo mem. Komando anstataŭo okazas kiam la komando estas enfermita kiel sekvas:

$ (komando)

aŭ Po `'rezervita versio Pc:

'komando'

La ŝelo ekspansiiĝas la komandan anstataŭon per ekzekutado de komando en subtera medio kaj anstataŭigas la anstataŭan komandon kun la norma eligo de la komando, forigante sekvencojn de unu aŭ pli s ĉe la fino de la anstataŭo. (Enkorpigitaj s antaŭ ol la eliro de la eligo ne estas forigitaj, tamen, dum kampo dividiĝas, ili povas esti tradukitaj al , laŭ la valoro de IFS kaj citaĵo, kio estas efektive.)

Aritmetika Ekspansio

Aritmetika ekspansio provizas mekanismon por taksi aritmetikan esprimon kaj anstataŭigi ĝian valoron. La formato por aritmetika ekspansio estas kiel sekvas:

$ ((esprimo))

La esprimo estas traktita kvazaŭ ĝi estus en duoblaj kotoj, krom ke duobla citaĵo en la esprimo ne traktas precipe. La ŝelo ekspansiiĝas ĉiujn tokojn en la esprimo por parametropansio, komando anstataŭo, kaj cita forigo.

Poste, la ŝelo traktas ĉi tion kiel aritmetika esprimo kaj anstataŭigas la valoron de la esprimo.

Blanka Spaca Splitado

Post la ekspansio de la parametro, la anstataŭo de la komando kaj la aritmetika ekspansio, la ŝelo eksplodas la rezultojn de ekspansioj kaj anstataŭigoj, kiuj ne okazis en duoblaj kotoj por kampo dividado kaj pluraj kampoj povas rezulti.

La ŝelo traktas ĉiun karakteron de la IFS kiel delimitilo kaj uzas la delimitojn por dividi la rezultojn de parametro-ekspansio kaj komandan anstataŭon en kampoj.

Ekspansio de nomnomo (File Name Generation)

Krom se la f- flago estas fiksita, dosiernivela generacio estas plenumita post vorto dividado kompleta. Ĉiu vorto estas rigardata kiel serio de ŝablonoj, disigitaj per slatoj. La procezo de ekspansio anstataŭigas la vorton per la nomoj de ĉiuj ekzistantaj dosieroj kies nomoj povas esti formitaj per anstataŭigo de ĉiu ŝablono kun ĉeno, kiu kongruas kun la specifita ŝablono. Estas du limigoj sur ĉi tio: unue, ŝablono ne povas kongrui kun ĉeno enhavanta slash, kaj sekundo, ŝablono ne povas egali ĉenon komencantan per periodo, se la unua karaktero de la ŝablono estas periodo. La sekva sekcio priskribas la mastrojn uzitajn por la "Pathname Expansion" kaj la kazon (1) komando.

Ŝelo Ŝablonoj

Ŝablono konsistas el normalaj signoj, kiuj kunigas sin kaj meta-karakteroj. La meta-karakteroj estas ``! '' `` * '' ``? '' Kaj `` ['' Ĉi tiuj signoj perdas siajn specialajn signifojn, se ili estas cititaj. Kiam komando aŭ ŝanĝiĝema anstataŭo estas farita kaj la dolaro-signo aŭ reenaj citaĵoj ne estas duobla citita, la valoro de la variablo aŭ la eligo de la komando estas scannita por ĉi tiuj karakteroj kaj ili estas meta-karakteroj.

Asterisko (`` * '') kongruas kun iu ajn kordo de signoj. Marko de demando kongruas kun iu ajn karaktero. Maldekstra krampo (`` ['') enmetas karakteron-klason. La fino de la karaktero klaso estas indikita per (``] '') se la ``] '' mankas tiam la `` ['' kongruas `` ['' prefere ol enmeti karakteron klaso. Karaktero de klaso kongruas kun iu ajn el la signoj inter la kvadrataj krampoj. Intervalo de karakteroj povas esti specifita per minus signo. La karaktero-klaso povas esti kompletigita per kriado, la unua karaktero de la klaso de karaktero.

Por inkludi ``] '' en klaso de karaktero, faru ĝin la unua karaktero enlistigita (post la ``! '' Se iu ajn). Por inkluzivi minus signon, faru ĝin la unua aŭ lasta karaktero enlistigita

Builtins

Ĉi tiu sekcio listigas la konstruajn komandojn, kiuj estas konstruitaj, ĉar ili bezonas plenumi iun operacion, kiu ne povas esti farita per aparta procezo. Krom ĉi tiuj, ekzistas pluraj aliaj komandoj, kiuj povas esti konstruitaj por efikeco (ekz. Eĥo 1).

:

Nula komando kiu redonas 0 (vera) eliga valoro.

. dosiero

La komandoj en la specifa dosiero estas legataj kaj ekzekutitaj per la ŝelo.

alias [ nomo [ = kordo ... ]]

Se nomo = kordo estas precizigita, la ŝelo difinas la aliasan nomon kun valora kordo Se nur nomo estas specifita, la valoro de la aliasa nomo estas presita. Sen argumentoj, la alias konstruita presas la nomojn kaj valorojn de ĉiuj difinitaj aliasoj (vidu unalias)

bg [ laboron] ...

Daŭrigu la specifajn laborpostenojn (aŭ la aktualan laborpostenon, se neniu laboro estas donita) en la fono.

Komanda komando ...

Ekzekuti la specifitan konstruitan komandon. (Ĉi tio estas utila kiam vi havas ŝelon funkcion kun la sama nomo kiel konstruita komando.)

cd [ dosierujo ]

Iru al la specifita dosierujo (defaŭlta $ HOME) Se enmeto por CDPATH aperas en la medio de la komando cd aŭ la ŝlosila variablo CDPATH estas aro kaj la dosierujo ne komenciĝas per slash, tiam serĉos la adresaroj en CDPATH por la specifita dosierujo. La formato de CDPATH estas la sama kiel la de PATH En interaga konko, la komando de cd presos la nomon de la dosierujo, kiun ĝi vere ŝanĝis al se ĉi tio diferencas al la nomo, kiun donis la uzanto. Ĉi tiuj povas esti malsamaj aŭ ĉar la CDPATH- mekanismo estis uzata aŭ ĉar simbola ligo estis transirita.

kurata ŝnuro ...

Konkatenu ĉiujn argumentojn kun spacoj. Tiam re-parse kaj ekzekuti la komandon.

ekzec [ komando arg ... ]

Krom se la komando preterlasas, la ŝelo-procezo anstataŭas la specifitan programon (kiu devas esti vera programo, ne ŝelo konstruita aŭ funkcio). Ajna redirekto sur la ekzekkomando estas markita kiel permanenta, por ke ili ne malhelpu kiam la ekzekkomando finiĝas.

eliro [ eliro ]

Finu la ŝelon procezo. Se eliro de la rezervo estas uzata kiel eliro de la ŝelo; alie la statusa eliro de la antaŭa komando estas uzata.

eksporta nomo ...

eksportado -p

La specifaj nomoj estas eksportitaj tiel ke ili aperos en la medio de postaj komandoj. La sola maniero por ne-eksporti variablon estas malŝalti ĝin. La ŝelo permesas la valoron de variablo esti fiksita samtempe ol ĝi estas eksportita per skribado

eksporta nomo = valoro

Sen argumentoj, la eksporta komando listigas la nomojn de ĉiuj eksportitaj variabloj. Kun la -p- opcio specifita, la eligo formateblas taŭge por ne-interaga uzo.

fc [- kaj redaktoro ] [ unua [ lasta ]]

fc -l [- nr ] [ unua [ lasta ]]

fc -s [ old = nova ] [ unua ]

La fc konstruis listojn, aŭ redaktas kaj reekcesas, komandojn antaŭe en interagajn ŝelon.

-e redaktoro

Uzu la redaktilon nomitan de redaktilo por redakti la komandojn. La redaktilo estas komandomo, submetata al serĉo per la variablo PATH . La valoro en la FCEDIT- variablo estas uzata kiel defaŭlte kiam - e ne estas specifita. Se FCEDIT estas nula aŭ malŝaltita, la valoro de la redaktilo estas uzata. Se EDITOR estas nula aŭ malŝaltita, ed (1) estas uzata kiel redaktoro.

-l (ell)

Enlistigu la ordonojn prefere ol alpreĝante redaktanton pri ili. La komandoj estas skribitaj en la sekvenco indikita de la unuaj kaj lastaj operandoj, kvazaŭ tuŝitaj per - r kun ĉiu ordono antaŭita de la komand-nombro.

-n

Subpremi komandaj nombroj kiam kalkulata kun -l.

-r

Reverŝu la ordo de la komandoj listigitaj (kun - l aŭ redaktita (kun nek - l nek - s)

-s

Re-ekzekuti la komandon sen alpreĝi redaktanton.

unue

lasta

Elektu la komandojn por listigi aŭ redakti. La nombro de antaŭaj komandoj, kiujn oni povas aliri, estas difinita per la valoro de la variablo HISTSIZE . La valoro de la unua aŭ lasta aŭ ambaŭ estas unu el la sekvaj:

[+] nombro

Pozitiva nombro reprezentanta komandan numeron; Komandaj nombroj povas esti montritaj per la - l- opcio.

-nombro

Negativa decimala nombro reprezentanta la komandon, kiu estis ekzekutita nombro da komandoj antaŭe. Ekzemple, -1 estas la tuj antaŭa komando.

kordo

Kordo indikante la plej ĵus eniritan komandon, kiu komenciĝas per tiu kordo. Se la malnova = nova operando ne estas ankaŭ specifita kun - s la kordo-formo de la unua operando ne povas enhavi ebrigitan egalan signon.

La jenaj mediaj variabloj influas la ekzekuton de fc:

FCEDIT

Nomo de la redaktilo por uzi.

HISTOJ

La nombro de antaŭaj komandoj, kiuj estas alireblaj.

fg [ laboron ]

Movu la specifitan laborpostenon aŭ la aktualan laboron al la unua fono.

getopts optstring var

La komando de POSIX getopts , ne konfuzi kun la Bell Labs -dividita getopt (1).

La unua argumento devus esti serio de leteroj, ĉiu el kiuj laŭvole sekvas kolonon por indiki ke la opcio postulas argumenton. La variablo specifita estas agordita al la analizita opcio.

La getopts- komando malakceptas la pli malnovan getopt (1) utilecon pro ĝia uzado de argumentoj enhavantaj spacon.

La getoptoj konstruitaj povas esti uzataj por akiri eblojn kaj iliajn argumentojn de listo de parametroj. Kiam alpreĝitaj, getopts metas la valoron de la sekva opcio de la opcio-ŝnuro en la listo en la ŝelo-variablo difinita de var kaj ĝi estas indekso en la ŝlosila variablo OPTIND Kiam la ŝelo estas alvokita, OPTIND estas komencebla al 1. Por ĉiu opcio, kiu postulas argumento, la getopts builtin metos ĝin en la ŝlosila variablo OPTARG Se opcio ne estas permesata en la optstringo, tiam OPTARG malaperos.

Optstring estas kordo de agnoskitaj opcioj. Se letero estas sekvata de kolono, la opcio estas atendita havi argumenton, kiu eble aŭ ne povas esti apartigita de ĝi per blanka spaco. Se opcio-signo ne troveblas, kie oni atendas, getopts agordos la variablon var al ``? '' Getopts tiam malŝaltos OPTARG kaj skribos eliron al norma eraro. Specifante kolonon kiel la unua karaktero de optstringo ĉiuj eraroj estos ignorita.

Nevalora valoro estas redonita kiam la lasta elekto estas atingita. Se ne ekzistas ceteraj argumentoj, getopts starigos var al la speciala opcio, `` - '' alie, ĝi difinos var al ``? ''

La sekva fragmento de kodo montras kiel oni povus procesi la argumentojn por komando, kiu povas preni la eblojn [a] kaj [b] kaj la opcion [c], kiu postulas argumenton.

dum getopts abc: f
faru
kazon $ f en
a | b) flago = $ f ;;
c) karg = $ OPTARG ;;
\?) eĥo $ USAGE; eliro 1 ;;
esac
farita
shift `expr $ OPTIND - 1`

Ĉi tiu kodo akceptos iun ajn el la jenaj kiel ekvivalenta:

cmd -acarg dosiero-dosiero
cmd-a -c arg-dosiero-dosiero
cmd -carg -a dosiero-dosiero
cmd-a -carg - dosiero-dosiero

hash -rv- komando ...

La ŝelo konservas hash-tablon, kiu memoras la lokojn de komandoj. Kun neniuj argumentoj, la hash- komando presas la enhavojn de ĉi tiu tablo. Entajxoj, kiuj ne rigardis, ĉar la lasta komando- cd estas markita per asterisko; Eblas ĉi tiuj eniroj esti malvalida.

Kun argumentoj, la hash- ordono forigas la specifajn komandojn de la hash-tablo (krom se ili estas funkcioj) kaj poste lokas ilin. Kun la opcio - v , hash presas la lokojn de la komandoj, kiel ĝi trovas ilin. La - r- opcio kaŭzas la hash-komandon forigi ĉiujn enirojn en la hash-tablo krom funkcioj.

laboristo [ laboro ]

Printu la procezon id de la procezoj en la laboro. Se la labora argumento estas preterlasita, la nuna laboro estas uzata.

laborpostenoj

Ĉi tiu komando listigas ĉiujn fonajn procezojn, kiuj estas infanoj de la nuna konkreta procezo.

pwd

Printu la nunan dosierujon. La konstruita komando povas diferenci de la programo de la sama nomo, ĉar la konstruita komando memoras, ke la aktuala dosierujo preferas rekompenci ĝin ĉiun fojon. Ĉi tio faras ĝin pli rapida. Tamen, se la aktuala dosierujo estas renomata, la konstruita versio de pwd daŭrigos presi la malnovan nomon por la dosierujo.

legi [- p- prompton ] [- r ] variablo ...

La pruvo estas presita se la - p opcio estas precizigita kaj la norma enigo estas fina stacio. Tiam oni legas linion de la norma enigo. La translima linio estas forigita de la linio kaj la linio dividiĝas kiel priskribita en la sekcio de vorto dividanta supre, kaj la pecoj estas atribuitaj al la variabloj laŭ ordo. Almenaŭ unu variablo devas esti specifita. Se estas pli da pecoj ol variabloj, la ceteraj pecoj (kune kun la karakteroj en IFS, kiuj disigis ilin) ​​estas atribuitaj al la lasta variablo. Se estas pli da variabloj ol pecoj, la ceteraj variabloj estas atribuitaj la nula kordo. La legita konstruaĵo indikos sukceson, se EOF ne trovos en enigo, en kies kazo fiasko estas redonita.

Defaŭlte, se la r- opcio estas precizigita, la backslash `` \ '' agas kiel ellasilo, kaŭzante laŭvorte la sekvan karakteron. Se malantaŭa linio sekvas nova linio, la backslash kaj la nova linio estos forigita.

lerta nomo ...

legite -p

La specifaj nomoj estas markitaj kiel legataj nur, tiel ke ili ne povas esti poste modifitaj aŭ malŝaltitaj. La ŝelo permesas la valoron de variablo esti agordita samtempe, ke ĝi estas markita nur per skribado

legite nomo = valoro

Sen argumentoj, la lerta komando listigas la nomojn de ĉiuj legataj nur variabloj. Kun la -p- opcio specifita, la eligo formateblas taŭge por ne-interaga uzo.

agordi [{- opcioj | + ebloj | - arg ... ]

La aro komando plenumas tri malsamajn funkciojn.

Sen argumentoj, ĝi listigas la valorojn de ĉiuj ŝlosilaj variabloj.

Se elektoj estas donitaj, ĝi agordas la specifajn elektojn de la elektoj aŭ malplenigas ilin kiel priskribitan en la sekcio nomita Sx Argument List Processing.

La tria uzo de la aro komando estas agordi la valorojn de la poziciaj parametroj al la specifaj args. Por ŝanĝi la poziciajn parametrojn sen ŝanĝi ajnajn eblojn, uzu `` - '' kiel la unuan argumenton por agordi. Se ne ekzistas args, la aro komandos ĉiujn parametrojn de pozicio (ekvivalentaj al ekzekuti `` shift $ #. ''

variablo valoro

Asignas valoron al variablo. (Ĝenerale estas pli bone skribi variablon = valoro anstataŭ uzi setvar setvar por esti uzata en funkcioj kiuj atribuas valorojn al variabloj kies nomoj estas pasitaj kiel parametroj.)

shift [ n ]

Ŝanĝi la poziciajn parametrojn n fojojn. Ŝanĝo taksas la valoron de $ 1 al la valoro de $ 2 la valoro de $ 2 ĝis la valoro de $ 3 kaj tiel plu, malpliigante la valoron de $ # per unu. Se n estas pli granda ol la nombro de poziciaj parametroj, la ŝanĝo elsendos eraran mesaĝon kaj eliros kun la statuso de reveno 2.

fojoj

Printu la amasigitan uzanton kaj sistemontempojn por la ŝelo kaj por procezoj kuritaj de la ŝelo. La statuso de reveno estas 0.

kaptilo de signalo ...

Ĝi kaŭzas la ŝelon por analizi kaj ekzekuti agon kiam iu el la specifaj signaloj ricevas. La signaloj estas specifitaj per signala nombro. Se signalo estas 0, la ago estas ekzekutita kiam la ŝelo eliras. ago povas esti nula aŭ `` - '' la unua kaŭzas la specifitan signalon por ignori kaj ĉi-lasta kaŭzas la antaŭdiritan agon. Kiam la ŝelo forgesas subshellon , ĝi restarigas la signojn kaptitajn (sed ne ignoritaj) al la defaŭlta ago. La kaptilo- komando ne havas efikon sur signaloj ignorataj ĉe eniro al la ŝelo.

tipo [ nomo ... ]

Interpretu ĉiun nomon kiel komandon kaj presi la rezolucion de la komandserĉado. Eblaj rezolucioj estas: ŝelo ŝlosilvorto, alias, ŝelo konstruita , komando, sekvita alias kaj ne trovita. Por aliasoj la aliasa ekspansio estas presita; Por komandoj kaj spuritaj aliasoj la kompleta padnomo de la komando estas presita.

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

Demandu pri aŭ starigu la malmolajn aŭ molajn limojn sur procezoj aŭ starigas novajn limojn. La elekto inter malmola limo (kiun neniu procezo povas malobservi, kaj kiu eble ne leviĝos nur kiam ĝi estas malaltigita) kaj mola limo (kiu kaŭzas procezojn esti signatitaj sed ne necese mortigitaj kaj kiu povas esti levita) estas farita per ĉi tiuj flagoj:

-H

starigi aŭ demandi pri malmolaj limoj

-S

starigu aŭ demandu pri molaj limoj. Se nek - H nek - S estas specifitaj, la mola limo estas montrata aŭ ambaŭ limoj estas agorditaj. Se ambaŭ estas specifitaj, la lasta gajnas.

La limo por esti pridemandita aŭ aro, tiam, estas elektita per specifado de iu el ĉi tiuj flagoj:

-a

Montri ĉiujn aktualajn limojn

-t

montri aŭ agordi la limon en CPU-tempo (en sekundoj)

-f

montri aŭ difini la limon sur la plej granda dosiero, kiu povas esti kreita (en 512-byte-blokoj)

-d

montri aŭ difini la limon sur la grandeco de la datuma segmento de procezo (en kilobajtoj)

-s

montri aŭ starigi la limon sur la pila grandeco de procezo (en kilobajtoj)

-c

montri aŭ starigi la limon sur la plej granda kerna grandeco, kiu povas esti produktita (en 512-byte-blokoj)

-m

montri aŭ difini la limon sur la totala fizika memoro, kiu povas esti uzata per procezo (en kilobajtoj)

-l

montri aŭ difini la limon pri kiom da memoro procezo povas ŝlosi kun mlock (2) (en kilobajtoj )

-p

montri aŭ difini la limon sur la nombro da procezoj kiujn ĉi tiu uzanto povas havi samtempe

-n

montri aŭ difini la limon sur la nombraj dosieroj, procezo povas malfermi samtempe

Se neniu el ĉi tiuj estas specifita, ĝi estas la limo sur dosiergrandeco, kiu estas montrata aŭ aro. Se valoro estas precizigita, la limo estas fiksita al tiu nombro; alie la nuna limo estas montrata.

Limoj de ajna procezo povas esti montritaj aŭ agorditaj uzante la sysctl (8) utilecon.

umask [ masko ]

Agordu la valoron de umask (vidu umask (2)) al la specifa octala valoro. Se la argumento estas preterlasita, la umaskvaloro estas presita.

unalias [- a ] [ nomo ]

Se nomo estas specifita, la ŝelo forigas tiun alias. Se - estas specifita, ĉiuj aliasoj estas forigitaj.

malŝalti nomon ...

La specifaj variabloj kaj funkcioj estas malŝaltitaj kaj neportporteblaj. Se donita nomo respondas al ambaŭ variablo kaj funkcio, ambaŭ la variablo kaj la funkcio estas malakceptitaj.

atendi [ laboron ]

Atendu la specifitan laboron kompletigi kaj redoni la eliron-statuson de la lasta procezo en la tasko. Se la argumento estas preterlasita, atendu ĉiujn laborpostenojn por kompletigi kaj la rondveturo ellasas statuson de nulo.

Komandila Linia Eldono

Kiam sh estas uzata interaktive de fina stacio, la nuna komando kaj la komando-historio (vidu fc en Sx Builtins) povas esti redaktitaj per redaktado de komando-linio vi-mode. Ĉi tiu reĝimo uzas komandojn, priskribitajn sube, similajn al subaro de tiuj priskribitaj en la paĝo vi man. La komando 'aro' -o vi ebligas mod-redaktadon kaj loki sh en vi enmetan reĝimon. Kun vi-reĝimo ebligita, sh povas esti ŝanĝita inter enmeti modon kaj komandan reĝimon. La redaktisto ne estas priskribita tute ĉi tie, sed estos en posta dokumento. Similas al vi: tajpante Aq ESC ĵetos vin en komandon VI-komandan reĝimon. Haltante Aq revenon dum komanda reĝimo pasos la linion al la ŝelo.

Grava: Uzu la komandon ( % viro ) por vidi kiel komando estas uzata en via komputilo.