Abo - Linux Command - Unix Command

NGALAN

sh - command interpreter ( kabhang )

SYNOPSIS

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

DESCRIPTION

Ang Sh mao ang standard command interpreter alang sa sistema. Ang kasamtangan nga bersyon sa sh anaa sa proseso nga giusab aron mahiuyon sa POSIX 1003.2 ug 1003.2a specifications alang sa kabhang. Kini nga bersyon adunay daghan nga mga bahin nga nagpakita nga susama sa pipila ka mga bahin sa Korn shell, apan kini dili usa ka Korn shell clone (tan-awa ang ksh (1)). Ang mga bahin nga gitudlo lamang sa POSIX ug pipila ka mga extension sa Berkeley, gilakip niini nga kabhang. Naglaum kami nga ang POSIX nga pag-uyon sa oras 4.4 BSD gibuhian. Kini nga panid sa tawo dili gituyo aron mahimong usa ka panudlo o usa ka kompleto nga detalye sa kabhang.

Kasagaran

Ang kabhang mao ang usa ka sugo nga nagbasa sa mga linya gikan sa bisan usa ka file o sa terminal, paghubad niini, ug sa kinatibuk-an nagpatuman sa uban nga mga sugo. Kini ang programa nga nagdagan sa dihang ang usa ka tiggamit mag-log in sa sistema (bisan tuod ang usa ka user mahimong mopili sa usa ka lainlaing kabhang sa chsh (1) nga sugo). Ang mga kabhang nagpatuman sa usa ka pinulongan nga adunay kontrol sa agianan, usa ka macro nga pasilidad nga naghatag sa nagkalainlaing bahin sa dugang sa pagtipig sa datos, uban sa natukod nga kasaysayan ug mga kapabilidad sa pag-edit sa linya. Naglangkob kini sa daghang mga bahin aron sa pagtabang sa paggamit sa us aka paggamit ug ang bentaha nga ang kombinasyon nga pinulongan komon sa duha ka interactive ug dili-interactive nga paggamit (mga script sa kinhason). Nga mao, ang mga sugo mahimo nga ma-type direkta sa running shell o mahimong ibutang sa usa ka file ug ang file mahimong direktang ipatuman sa kabhang.

Pag-ampo

Kung walay argumento ang anaa ug kon ang standard input sa kabhang konektado sa usa ka terminal (o kon ang i - band gipahimutang), ug wala ang opsiyon sa - c , ang kabhang giisip nga usa ka interactive shell . Ang usa ka interactive nga kabhang sa kasagaran nag-aghat sa dili pa ang matag command ug nag-handle sa programming ug command error sa lain-laing (sama sa gihulagway sa ubos). Sa una nga pagsugod, gisusi sa kabhang ang argumento 0, ug kung kini nagsugod sa usa ka dash `- 'ang kabhang giisip usab nga usa ka shell shell. Kasagaran kini awtomatik nga gibuhat sa sistema sa diha nga ang tig-una nga tig-log-in. Ang usa ka login shell unang magbasa sa mga sugo gikan sa mga file / etc / profile ug .profile kung anaa kini. Kung ang environment nga variable ENV gitakda sa pagsulod sa usa ka kabhang, o gibutang sa .profile sa usa ka shell nga pang-login, ang kabhang sunod magbasa sa mga sugo gikan sa file nga ginganlan sa ENV Busa, ang usa ka user kinahanglan magbutang sa mga sugo nga ipatuman lamang sa oras sa pag-login sa file sa .profile, ug mga command nga gipatuman alang sa matag kabhang sulod sa ENV file. Aron ibutang ang variable sa ENV sa pipila ka file, ibutang ang mosunod nga linya sa imong .profile sa imong home directory

ENV = $ HOME / .shinit; pag-export ENV

pag-ilis sa ``. shinit '' bisan unsa nga filename nga imong gusto. Tungod kay ang ENV file mabasa sa matag invocation sa kabhang, lakip na ang mga script sa shell ug mga non-interactive shells, ang mosunod nga paradigm mapuslanon sa pagpugong sa mga sugo sa ENV file ngadto sa interactive invocations. Ibutang ang mga mando sulod sa `` kaso '' ug `` esac '' sa ubos (kini nga mga sugo gihulagway sa ulahi):

kaso $ - in * i *)

# mga sugo alang sa interaktibong paggamit lamang

...

esac

Kon ang command line argumento gawas pa sa mga kapilian nga gitakda, nan ang pinakagamay nga pagtagad sa unang argumento ingon nga ngalan sa usa ka file diin mabasa ang mga commands (usa ka script sa usa ka kabhang), ug ang nahabilin nga mga argumento gipahimutang isip positional parameters sa shell ($ 1 , $ 2, etc.). Kay kon dili, ang kabhang nagbasa sa mga sugo gikan sa standard input niini.

Pagproseso sa Lista sa Pagtubag

Ang tanan nga mga kapilian nga mga letra adunay usa ka katugbang nga ngalan nga mahimong gamiton ingon nga argumento sa - o kapilian. Ang set - o nga ngalan gihatag sunod sa usa ka opsyon sa letra diha sa paghulagway sa ubos. Ang pagtino sa usa ka dash nga `` - '' nagpunting sa kapilian, samtang ang paggamit og plus `` + '' nagpugong sa kapilian. Ang mosunod nga mga kapilian mahimong ibutang gikan sa command line o uban sa set (1) builtin (gihulagway sa ulahi).

-sa allexport

Pag-eksport sa tanang mga variable nga gihatag sa. (UNINAHIMO alang sa 4.4alpha)

-c

Basaha ang mga sugo gikan sa command line. Walay mga sugo nga mabasa gikan sa standard input.

-C noclobber

Ayaw usba ang kasamtangan nga mga file sa ``> '' (UNIMPLEMENTED alang sa 4.4alpha)

-e errexit

Kung dili interaktibo, exit dihadiha kon ang bisan unsang wala pa gisulat nga command mapakyas. Ang exit nga kahimtang sa usa ka sugo giisip nga tinud-an nga gisulayan kon ang sugo gigamit sa pagpugong sa usa ka kung ang elif samtang o hangtud o kung ang sugo mao ang wala nga kamot nga operand sa usa ka `` & & '' o `` || '' operator.

-f noglob

Ayaw paglihok sa pagpalapad sa agianan .

-n noexec

Kung dili interaktibo, basaha ang mga sugo apan ayaw ipatuman kini. Kini mapuslanon sa pagsusi sa syntax sa mga script sa kabhang.

-u nounset

Pagsulat sa usa ka mensahe ngadto sa standard error sa pagsulay sa pagpalapad sa usa ka variable nga wala ibutang, ug kung ang shell dili interactively, mogawas dayon. (UNINAHIMO alang sa 4.4alpha)

-v malaw-ay

Ang panit nagsulat sa iyang input sa standard error ingon nga kini gibasa. Mapuslanon alang sa pag-debug.

-x xtrace

Isulat ang matag command sa standard error (nga gisundan sa `+ 'sa wala pa kini ipatuman.) Mga makatabang alang sa debugging.

-Q quietprofile

Kung ang mga v - x o - x nga mga kapilian gipahimutang, ayaw ipadapat kini sa pagbasa sa mga file sa initialization, kini nga / etc / profile .profile ug ang file nga gitino sa variable ENV environment.

-Ako wala magpakabana

Ayaw kalimti ang EOF gikan sa input kon interactive.

-i nga interactive

Pugos ang kabhang sa pag-ipon sa interactively.

-m monitor

Buksan ang pagkontrol sa trabaho (ibutang nga awtomatiko sa diha nga ang interactive).

-s stdin

Basaha ang mga mando gikan sa standard input (ibutang awtomatik kung wala'y mga argumento sa file). Kini nga opsyon walay epekto kon itakda human ang kabhang nagsugod na nga nagdagan (ie sa set (1)).

-V vi

Pag-andam sa gitukod nga sulod sa vi (1) command line editor (disable - E kung kini gitakda).

-E emacs

Pag-andam sa built-in nga emacs (1) command line editor (pagpugong - V kung kini gipatuman).

-pahibal- an

Pag-andam sa asynchronous nga pahibalo sa pagkompleto sa trabaho sa background. (UNINAHIMO alang sa 4.4alpha)

Hinunoa nga Istruktura

Ang kabhang nagbasa sa input sa mga termino gikan sa usa ka file ug gibutang kini sa mga pulong sa whitespace (mga blangko ug mga tab), ug sa pipila ka mga han-ay sa mga karakter nga espesyal sa shell nga gitawag og `` operators '' Adunay duha ka matang sa mga operator: kontrol sa mga operators ug mga redirection operators (ang ilang kahulugan gihisgutan sa ulahi). Ang mosunod usa ka listahan sa mga operators:

"Mga operitor sa kontrol:"

& && (); ;; | ||

"Pag-redirection operator:"

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

Pagsumada

Ang pag-quote gigamit sa pagkuha sa espesyal nga kahulugan sa pipila ka mga karakter o mga pulong sa kabhang, sama sa mga operator, mga whitespace, o mga keyword. Adunay tulo ka mga matang sa pagkutlo: ang gipaangay nga mga single quotes, gipaangay nga double quotes, ug backslash.

Backslash

Ang usa ka backslash nagpreserbar sa literal nga kahulogan sa mosunod nga kinaiya, gawas sa Aq newline. Ang usa ka backslash nga nag-una sa Aq newline giisip nga usa ka linya nga pagpadayon.

Single Quotes

Ang paglakip sa mga karakter sa usa ka kinutlo nagtipig sa literal nga kahulogan sa tanan nga mga karakter (gawas sa usa ka kinutlo, nga naghimo niini nga imposible nga ibutang ang usa ka kinutlo sa usa ka kutlo nga gikutlo).

Dobleng mga Kinutlo

Ang pagmarka sa mga karakter sulod sa dobleng mga kinutlo nagpreserbar sa literal nga kahulogan sa tanang mga karakter gawas sa dolyar ($) backquote (`) ug backslash (\) Ang backslash sulod sa double nga mga kinutlo hanap nga kasaysayan, ug nagsugyot lamang sa mga mosunod nga mga karakter:

$ `\

Kay kon dili kini magpabilin literal.

Gipreserbar nga mga Pulong

Ang gitipigan nga mga pulong mao ang mga pulong nga adunay espesyal nga kahulogan sa kabhang ug giila sa sinugdanan sa usa ka linya ug human sa usa ka tigpugong nga kontrol. Ang mosunod mao ang gitagana nga mga pulong:

! Ta elif Ta fi Ta samtang Ta case

laing Ta para sa Ta unya Ta {Ta}

ang Ta nahuman Ta hangtud Ta kung Ta esac

Ang ilang kahulogan gihisgutan sa ulahi.

Mga alyas

Ang usa ka alyas usa ka ngalan ug susama nga value set gamit ang alias (1) builtin command. Sa matag higayon nga ang usa ka pulong nga gitagana mahitabo (tan-awa sa ibabaw), ug human sa pagsusi alang sa gitagana nga mga pulong, ang tseke nagsusi sa pulong aron makita kung kini usa ka alias. Kung kini mahitabo, kini mopuli niini sa input stream nga adunay bili niini. Pananglitan, kung adunay usa ka alyas nga gitawag og `` lf '' nga may bili nga `` ls -F '' nan ang input:

lf foobar

mahimo

ls -F foobar

Ang mga aliad naghatag og usa ka kombenyente nga paagi alang sa mga walay hinungdan nga tiggamit sa pagmugna og mga shorthands alang sa mga sugo nga dili kinahanglan makat-on unsaon sa paghimo sa mga gimbuhaton uban sa mga argumento. Mahimo usab kini nga gigamit sa pagmugna sa lechikal nga dili makita nga kodigo. Kini nga paggamit nawad-an sa kadasig.

Mga sugo

Ang kahon naghubad sa mga pulong nga gibasa niini sumala sa usa ka pinulongan, ang paghingalan nga walay labot sa sakop niining tawo nga panid (nagtumong sa BNF sa POSIX 1003.2 nga dokumento). Hinuon, ang usa ka linya gibasa ug kung ang una nga pulong sa linya (o human sa usa ka operitor sa pagkontrol) dili usa ka gitagana nga pulong, nan ang kinhason nakaila sa usa ka yano nga sugo. Kay kon dili, usa ka komplikado nga mando o uban pang espesyal nga pagtukod mahimong giila.

Simple nga mga Sugo

Kon ang usa ka yano nga sugo naila, ang kabhang nagpahigayon sa mosunod nga mga aksyon:

  1. Ang nag-unang mga pulong sa porma nga `` name = value '' gikuha ug gihatag ngadto sa palibot sa yano nga sugo. Ang mga operator sa redirection ug ang ilang mga argumento (sama sa gihulagway sa ubos) gikuha ug gitipigan alang sa pagproseso.
  2. Ang nabilin nga mga pulong gipalapad sumala sa gihulagway sa seksyon nga gitawag og `` Mga Ekspansyon '' ug ang unang nahibilin nga pulong giisip nga ang ngalan sa komand ug nahimutang ang sugo. Ang nahibiling mga pulong giisip nga mga argumento sa sugo. Kung walay resulta nga command command, ang mga assignment sa variable nga `` name = value '' nga giila sa item 1 makaapekto sa kasamtangan nga kabhang.
  3. Ang mga redirect gihimo sama sa gihulagway sa sunod nga seksyon.

Mga Redirection

Gigamit ang mga redirection aron mabag-o diin ang usa ka sugo nagbasa sa iyang input o nagpadala sa iyang output. Sa kinatibuk-an, ang mga redirection moabli, mosira, o mag-duplicate sa kasamtangan nga paghisgot sa usa ka file. Ang kinatibuk-an nga format nga gigamit alang sa redirection mao ang:

[n] redir-op file

diin ang redir-op usa sa mga redirection operator nga gihisgutan kaniadto. Ang mosunod usa ka listahan sa posible nga redirections. Ang Bq n usa ka opsyonal nga numero, sama sa `3 '(dili` Bq 3' nga nagtumong sa usa ka file descriptor.

[n]> file

Pag-redirect standard output (o n) sa pag file.

[n]> | file

Parehas, apan gina-override ang -C nga kapilian.

[n] >> file

Idugang ang standard output (o n) sa pag file.

[n]

Pag-redirect standard input (o n) gikan sa file.

[n1] <& n2

Doble ang standard nga input (o n1) gikan sa file descriptor n2.

[n] <& -

Sira ang standard input (o n).

[n1]> & n2

Doble ang standard nga output (o n1) gikan sa n2.

[n]> & -

Sira ang standard output (o n).

[n] <> file

Buksan ang file alang sa pagbasa ug pagsulat sa standard input (o n).

Ang mosunod nga redirection sagad gitawag nga "` here-document ''

[n] << delimiter

dinhi-doc-text ...

delimiter

Ang tanan nga teksto sa sunodsunod nga mga linya hangtod sa delimiter maluwas ug mahimong magamit sa komand sa standard input, o file descriptor n kon kini gitino. Kon ang delimiter ingon nga natino sa unang linya gikutlo, nan ang kinatibuk-an nga teksto-nga gitagad sa literal nga paagi, kon dili ang teksto gipailalom sa pagpalapad sa parameter, pag-ilis sa sugo, ug pagpalapad sa aritmetika (sama sa gihulagway sa seksyon sa "Expansions" 'Kung ang operator mao ang `` << -' 'inay sa `` <<' 'nan ang mga tab nga gipangulohan sa dinhi-doc-text gihuboan.

Pagpangita ug Pagpatuman

Adunay tulo ka matang sa mga sugo: mga function sa shell, gitukod nga mga command, ug normal nga mga programa - ug ang sugo gipangita (pinaagi sa ngalan) sa maong han-ay. Ang matag usa kanila gipatay sa laing paagi.

Sa diha nga ang usa ka function sa kabhang gipatuman, ang tanan nga mga positional parameter sa kabhang (gawas sa $ 0, nga nagpabilin nga wala mausab) gibutang sa mga argumento sa function sa kabhang. Ang mga kapilian nga gibutang sa kinatibuk-ang palibot sa sugo (pinaagi sa pagtugyan sa mga buluhaton ngadto kanila sa atubangan sa ngalan sa paglihok) gihimo nga lokal ngadto sa katungdanan ug gibutang sa mga bili nga gihatag. Dayon ang mando nga gihatag sa kahulogan sa function gipatuman. Ang positional nga mga parametro gipahiuli sa ilang orihinal nga mga bili sa diha nga ang kompleto nga sugo. Kining tanan mahitabo sulod sa kasamtangan nga kabhang.

Ang mga tinukod sa Shell gipatuman sa sulod sa kinhason, nga wala'y usa ka bag-ong proseso.

Kay kon dili, kon ang command name dili katumbas sa usa ka function o builtin, ang sugo gipangita isip usa ka normal nga programa sa filesystem (sama sa gihulagway sa sunod nga seksyon). Sa diha nga ang usa ka normal nga programa gipatuman, ang kabhang midagan sa programa, nga nagpasa sa mga argumento ug sa kalikopan ngadto sa programa. Kung ang programa dili usa ka normal nga executable file (ie, kung dili magsugod sa "magic number" kansang ASCII representasyon mao ang "#!", Mao nga pagpatuman (2) pagbalik ni Er ENOEXEC unya) ang kabhang maghubad sa programa sa usa ka subshell. Ang panit sa bata magpagawas sa iyang kaugalingon sa niini nga kaso, aron ang epekto mahisama sa usa ka bag-ong kabhang nga gigamit sa pagdumala sa ad-hoc shell script, gawas nga ang nahimutangan sa hashed nga mga sugo nga nahimutang sa panit sa ginikanan mahinumduman sa bata.

Hinumdumi nga ang nag-una nga mga bersyon sa niini nga dokumento ug ang source code mismo misleadingly ug kanunay nga nagtumong sa usa ka script sa usa ka kabhang nga walay salamangka isip usa ka "pamaagi sa panumduman".

Pagpangita sa Dalan

Sa diha nga pagpangita sa usa ka sugo, ang sulud una nga tan-awon aron tan-awon kung kini adunay function sa kabhang sa ngalan. Dayon kini nagapangita sa usa ka sinulat nga himan sa ngalan. Kung ang usa ka commandin nga gitukod dili makaplagan, usa sa duha ka mga butang ang mahitabo:

  1. Ang mga ngalan sa command nga adunay usa ka slash ang gipatuman lang nga walay bisan unsang pagpangita.
  2. Gipangita sa kabhang ang matag entry sa PATH nga alang sa sugo. Ang bili sa variable nga PATH kinahanglan usa ka sunod-sunod nga mga pagsalmot nga gibulag sa mga colon. Ang matag entry naglangkob sa usa ka pangalan sa direktoryo. Ang kasamtangan nga direktoryo mahimo nga gipahayag sa usa ka walay sulod nga ngalan sa direktoryo, o tin-aw sa usa ka panahon.

Command Exit Status

Ang matag sugo adunay exit status nga makaimpluwensya sa kinaiya sa uban nga mga command comma. Ang paradigm mao nga ang usa ka sugo mogawas nga zero sa normal o kalampusan, ug dili-zero tungod sa kapakyasan, kasaypanan, o bakak nga timailhan. Ang tawo nga panid alang sa matag sugo kinahanglan magpakita sa nagkalainlaing exit codes ug unsa ang gipasabut niini. Dugang pa, ang mga command sa builtin nagbalik sa mga code sa exit, ingon man ang usa ka function nga shell nga gipatuman.

Complex Commands

Ang mga komplikadong mga sugo mao ang mga kombinasyon sa mga yano nga mga sugo nga may kontrol nga mga operitor o gitipigan nga mga pulong, nga nagkahiusa sa pagmugna sa mas dako nga komplikado nga sugo. Sa kinatibuk-an, usa ka sugo mao ang usa sa mosunod:

  • yano nga sugo
  • tubo
  • listahan o komplikado nga listahan
  • compound command
  • kahulugan sa paglihok

Gawas kon ipahayag, ang exit status sa usa ka sugo mao ang katapusang yano nga sugo nga gipatuman sa sugo.

Pipelines

Ang usa ka pipeline usa ka han-ay sa usa o labaw pa nga mga sugo nga gibulag sa control operator |. Ang sukaranang output sa tanan apan ang katapusan nga komand konektado sa standard input sa sunod nga command. Ang standard nga output sa katapusang sugo napanunod gikan sa kabhang, sama sa naandan.

Ang format alang sa usa ka pipeline mao ang:

[!] command1 [| command2 ...]

Ang standard output sa command1 konektado sa standard input sa command2. Ang standard input, standard output, o ang duha sa usa ka command giisip nga gi-assign sa pipeline sa dili pa ang pag-redirect nga gitakda sa mga redirection operators nga kabahin sa command.

Kon ang pipeline wala sa background (gihisgutan sa ulahi), ang kabhang naghulat sa tanang mga komando nga mahuman.

Kung ang gitagana nga pulong! wala mag-una sa pipeline, ang exit status mao ang exit status sa katapusang sugo nga gitakda sa pipeline. Kay kon dili, ang exit status mao ang lohikal nga dili sa exit status sa katapusan nga komand. Nga mao, kon ang katapusan nga sugo mobalik nga zero, ang exit status mao ang 1; kung ang katapusan nga sugo mobalik mas labaw kay sa zero, ang exit status zero.

Tungod kay ang pag-assign sa tubo sa standard input o standard output o ang duha mahitabo sa dili pa pag-redirection, kini mahimong usbon pinaagi sa redirection. Pananglitan:

$ command1 2> & 1 | sugo2

nagpadala sa standard output ug standard error sa command1 ngadto sa standard input sa command2.

A; o terminator maoy hinungdan sa nag-una nga AND-OR-list (gihulagway nga sunod) nga ipatuman sa sunod; usa ka & hinungdan sa asynchronous pagpatay sa nag-una nga AND-OR-list.

Hinumdomi nga dili sama sa uban nga mga kinhason, ang matag proseso sa pipeline usa ka bata sa invoking shell (gawas kon kini usa ka kabhang nga gitukod, nga diin kini gipatuman sa kasamtangan nga kabhang - apan ang bisan unsang epekto niini sa kalikopan gipahiran).

Mga Sugo sa Kasulbaran -

Kon ang usa ka sugo gitapos sa control operator nga ampersand (&), ang kabhang nagpatuman sa command asynchronously - nga mao, ang kabhang wala maghulat sa sugo nga mahuman sa dili pa ipatuman ang sunod nga sugo.

Ang pormat alang sa pagpadagan sa usa ka sugo sa background mao ang:

command1 & [command2 & ...]

Kung ang kabhang dili interactive, ang standard input sa usa ka asynchronous command gibutang sa / dev / null

Mga Listahan - Kasagaran Nga Nagsulti

Ang lista usa ka sunod-sunod nga zero o labaw pa nga mga sugo nga gibulag sa mga bag-ong linya, semicolons, o ampersands, ug opsyonal nga gitapos sa usa niining tulo ka mga karakter. Ang mga sugo sa usa ka listahan gipatuman sa han-ay nga gisulat. Kon ang sugo gisundan sa usa ka ampersand, ang kabhang magsugod sa sugo ug dayon mopadayon sa sunod nga sugo; kay kon dili kini maghulat sa sugo nga undangon sa dili pa moadto sa sunod.

Mga Short-Circuit List Operators

`` && '' ug `'||' ang AND-OR listahan nga mga operator. `` && '' ipatuman ang unang sugo, ug unya ipatuman ang ikaduhang sugo kung ang exit status sa unang sugo mao ang zero. `` || '' susama, apan gipatuman ang ikaduha nga sugo kung ang exit status sa unang sugo mao ang nonzero. `` && '' ug `` | '' pareho nga adunay prayoridad.

Pagdumala sa Pag-agos - kon, bisan, alang, sa kaso

Ang syntax sa kung command mao

kung ang listahan
dayon ilista
[listahan sa elif
unya ilista] ...
[laing listahan]
fi

Ang syntax sa samtang command mao

samtang naglista
ilista
nahimo

Ang duha ka mga listahan gipatuman balik-balik samtang ang exit status sa unang listahan mao ang zero. Ang hangtud nga sugo managsama, apan adunay pulong hangtod sa puli nga panahon, nga maoy hinungdan nga kini sublion hangtud ang exit status sa unang lista mao ang zero.

Ang syntax sa alang sa sugo mao

alang sa kausaban sa pulong ...
ilista
nahimo

Ang mga pulong gipalapdan, ug dayon ang lista gipatuman balik-balik sa mga variable nga gibutang sa matag pulong usab. Ang gibuhat ug nahimo mahimong pulihan sa `` {'' ug ``} ''

Ang syntax sa break ug padayon nga command mao

paglapas [num]
magpadayon [num]

Ang pagbuak nagtapos sa kinatibuk-an alang sa o samtang ang mga galong. Padayon nga magpadayon sa sunod nga pag-uli sa pinakasulod nga loop. Kini gipatuman ingon nga mga gimugna nga mga sugo.

Ang syntax sa command case mao

pulong nga pulong sa
list) ;;
...
esac

Ang sumbanan mahimong usa o labaw pa nga mga sumbanan (tan-awa ang Pattern sa Shell nga gihulagway sa ulahi), nga gibulag sa `` '' nga mga karakter.

Pagpundok nga Mga Sugo

Ang mga mando mahimong mapundok pinaagi sa pagsulat

(listahan)

o

{list;

Ang una niini nagpatuman sa mga sugo sa usa ka subshell. Ang gitukod nga mga sugo nga gilakip sa usa ka (listahan) dili makaapekto sa kasamtangan nga kabhang. Ang ikaduha nga porma wala magkuha sa lain nga kabhang busa kini gamay nga mas maayo. Ang pagpundok nga mga kombinasyon sa ingon niini nga paagi nagtugot kanimo sa pag-redirect sa ilang output nga daw usa kini ka programa:

{printf hello; printf world \ n ";}> pag-abiabi

Mga katuyoan

Ang syntax sa kahulugan sa usa ka function mao

ngalan () nga sugo

Ang kahulugan sa usa ka function mao ang usa ka executable nga pahayag; sa dihang gipatay kini nag-instalar sa usa ka function nga ginganlan nga ngalan ug nagbalik sa usa ka exit status nga zero. Ang komand sa kasagaran usa ka lista nga gilakip sa `` {'' ug ``} ''

Ang mga variables mahimong ipahayag nga lokal ngadto sa usa ka function pinaagi sa paggamit sa usa ka lokal nga sugo. Kini kinahanglan nga makita ingon nga unang pahayag sa usa ka function, ug ang syntax

lokal nga [variable] -] ...

Ang lokal gipatuman ingon nga usa ka command sa builtin.

Kon ang usa ka variable mahimo nga lokal, kini makapanunod sa unang bili ug ma-eksport ug mabasa nga mga flag gikan sa variable nga adunay sama nga ngalan sa naglibot nga bahin, kon adunay usa. Kay kon dili, ang variance sa sinugdanan wala mausab. Ang casing naggamit sa dinamikong pag-scoping, aron kung imong himoon ang variable x lokal nga mag-function f, nga unya nagtawag sa function g, ang mga reference sa variable nga x nga gihimo sa sulod g maghisgot sa variable x nga gipahayag sa sulod f, dili sa global nga variable nga ginganlan x .

Ang usa lamang nga espesyal nga parameter kay mahimong himoon nga lokal mao ang `` - '' Paghimo `` - '' sa lokal nga bisan unsang mga kapilian nga kabhang nga giusab pinaagi sa set command sa sulod sa function nga ibalik sa ilang orihinal nga mga bili kon ang function mobalik.

Ang syntax sa sugo sa pagbalik

pagbalik [exitstatus

Gitapos niini ang karon nga pagpatuman sa function. Ang pag-uswag gipatuman isip usa ka command sa builtin.

Mga Variable ug Parameter

Ang panit nagpabilin sa usa ka hugpong sa mga parameter. Ang usa ka parameter nga gipaila sa ngalan gitawag nga usa ka variable. Sa pagsugod, ang kabhang naglibut sa tanan nga mga variable sa kalikupan ngadto sa mga variable sa kabhang. Ang mga bag-ong mga baryable mahimong itakda gamit ang porma

ngalan = bili

Ang mga variables nga gitakda sa user kinahanglan adunay ngalan nga naglangkob lamang sa mga alpabeto, numeric, ug mga underscore - ang una nga kinahanglan dili numeric. Ang usa ka parameter mahimo usab nga gipaila sa usa ka numero o usa ka espesyal nga kinaiya nga gipasabut sa ubos.

Positional Parameters

Ang positional nga parameter mao ang usa ka parameter nga gipaila sa usa ka numero (n> 0). Gipahimutang kini sa kabhang sa una sa mga bili sa iyang command line nga mga argumento nga nagsunod sa ngalan sa script sa kabhang. Ang set (1) builtin mahimo usab nga gamiton aron i-set o i-reset kini.

Espesyal nga Parameter

Ang usa ka espesyal nga parameter mao ang usa ka parameter nga gipaila sa usa sa mosunod nga mga espesyal nga mga karakter. Ang bili sa mga parameter nga gilista sa sunod sa iyang kinaiya.

*

Nagpalapad sa positional parameters, sugod gikan sa usa. Sa dihang ang pagpalapad mahitabo sulod sa usa ka double-quoted string kini mopalapad sa usa ka field nga adunay bili sa matag parameter nga gibulag sa unang karakter sa variable sa IFS , o sa usa ka kung ang IFS wala mahatag.

@

Nagpalapad sa positional parameters, sugod gikan sa usa. Sa diha nga ang pagpalapad mahitabo sulod sa doble nga mga kinutlo, ang matag positional parameter magpalapad ingon nga usa ka lahi nga argumento. Kung walay positional nga mga lagda, ang pagpalapad sa @ makamugna og zero arguments, bisan kung ang @ doble nga gikutlo. Pananglitan, kon unsa kini sa pananglitan, kung ang $ 1 mao ang `` abc '' ug ang $ 2 mao ang `` def ghi '' nan ang Qq $ @ nagpalapad sa duha ka mga argumento:

abc def ghi

#

Nagapalapad sa gidaghanon sa positional nga mga parameter.

?

Nagpalapad sa kahimtang sa exit sa pinakabag-o nga pipeline.

- (Hyphen.)

Nagapalapad ngadto sa kasamtangang kapilian nga mga bandila (ang usa ka letra nga mga ngalan sa opsyon nga gihugpong ngadto sa usa ka hugpong) nga gitino sa pagsangpit, sa gitakda nga komand sa gitukod, o sa kinatibuk-an sa kabhang.

$

Nagpalapad sa proseso sa ID sa gitawag nga kabhang. Ang usa ka subskripsiyon nagpabilin sa samang bili sa $ isip iyang ginikanan.

!

Nagapalapad sa proseso sa ID sa labing bag-o nga command sa background nga gipatuman gikan sa kasamtangan nga kabhang. Alang sa usa ka pipeline, ang process ID mao ang katapusang command sa pipeline.

0 (Zero.)

Nagapalapad sa ngalan sa kabhang o panid sa kabhang.

Pagpalapad sa Pulong

Kini nga clause naghulagway sa nagkalain-lain nga mga ekspansyon nga gipahigayon sa mga pulong. Dili tanan nga pagpalapad gihimo sa matag pulong, ingon sa gisaysay sa ulahi.

Ang pagpalapad ni Tilde, pagpalapad sa mga parameter, pag-ilis sa sugo, pagpalapad sa aritmetika, ug pagkutlo sa mga pagtangtang nga mahitabo sa usa ka pulong nga gipalapad sa usa ka field. Ang pagbahin lamang sa kapatagan o pagpalapad sa dalan nga makahimo sa daghang mga natad gikan sa usa ka pulong. Ang usa nga eksepsiyon niini nga lagda mao ang pagpalapad sa espesyal nga parameter @ sulod sa double-quotes, sumala sa gihulagway sa ibabaw.

Ang han-ay sa pagpalapad sa pulong mao ang:

  1. Pagpalapad sa Tilde, Pagpalapad sa Parameter, Pagpuli sa Sugo, Pagpalapad sa Aritmetika (kini tanan nahitabo sa samang higayon).
  2. Ang pagbahin sa Field gihimo sa mga natad nga gimugna pinaagi sa lakang (1) gawas kung ang IFS variable null.
  3. Pagpalapad sa Pathname (gawas kon ang set - f naa sa epekto).
  4. Pagtangtang sa Quote.

Ang $ karakter gigamit aron ipaila ang pagpalapad sa parameter, pag-ilis sa sugo, o pagtimbang sa aritmetika.

Pagpalapad sa Tilde (pag-ilis sa home directory sa user)

Ang usa ka pulong nga nagsugod sa usa ka wala mahisgoti nga tilde nga karakter (~) gipailalom sa pagpalapad sa tilde. Ang tanan nga mga karakter ngadto sa usa ka slash (/) o ang katapusan sa pulong giisip nga usa ka username ug gipulihan sa home directory sa user. Kon wala ang username (sama sa ~ / foobar) ang tilde gipulihan sa bili sa variable sa HOME (ang home directory sa user karon).

Pagpalapad sa Parameter

Ang format alang sa pagpalapad sa parameter mao ang mosunod:

diin ang ekspresyon naglangkob sa tanan nga mga karakter hangtud nga ang pagtutugma sa ``} '' Ang bisan unsang ``} '' naka-ikyas pinaagi sa usa ka backslash o sulod sa usa ka gikutlo nga hikot, ug ang mga karakter sa gi-emblem nga mga ekspansyon sa aritmetika, mga pag-ilis sa sugo, ug mga variable expansions, wala usisa sa pagtino sa pagtakdo sa ``}

Ang pinakayano nga porma alang sa pagpalapad sa parameter mao ang:

Ang bili, kon bisan unsa, sa parameter ang gipuli.

Ang parametro nga ngalan o simbolo mahimong isulod sa mga kuptanan, nga opsyonal gawas sa positional nga mga parametro nga adunay labaw pa sa usa ka digit o kung ang parameter gisunod sa usa ka kinaiya nga mahimong hubaron isip kabahin sa ngalan. Kon ang usa ka pag-uswag nga parameter mahitabo sulod sa duha-nga mga kinutlo:

  1. Ang pagpalapnag sa Pathname wala gihimo sa mga resulta sa pagpalapad.
  2. Ang pagbahinbahin sa uma wala gihimo sa mga resulta sa pagpalapad, gawas sa @.

Dugang pa, ang usa ka pag-uswag sa parameter mahimo usbon pinaagi sa paggamit sa usa sa mosunod nga mga format.

Gamita ang Default nga mga Bililhon. Kung ang parameter dili gibutang o null, ang pagpalapad sa pulong gipulihan; kung dili, ang bili sa parameter gipulihan.

Maghatag ug Default Values. Kung ang parameter dili gibutang o null, ang pagpalapad sa pulong gi-assign sa parameter. Sa tanan nga mga kaso, ang katapusan nga bili sa parameter gipulihan. Ang mga baryable lamang, dili positional parameter o espesyal nga mga parameter, mahimong itudlo sa ingon niini nga paagi.

Ipakita ang Kasaypanan kon Dili Nuli o Unset. Kung ang parameter dili gibutang o null, ang pagpalapad sa pulong (o usa ka mensahe nga nagpakita nga wala kini gibutang kon wala ang pulong) gisulat sa standard error ug sa shell nga paggawas uban sa usa ka nonzero exit status. Kay kon dili, ang bili sa parameter gipuli. Ang usa ka interactive nga kabhang dili kinahanglan nga mogawas.

Paggamit sa Bili nga Bili. Kung ang parameter dili gibutang o null, null ang gipuli; kon dili, ang pagpalapad sa pulong gipulihan.

Sa ekspansyon nga parameter nga gipakita kaniadto, ang paggamit sa colon sa format nga mga resulta sa usa ka pagsulay alang sa usa ka parameter nga wala gibutang o null; Ang pagkawala sa kolon resulta sa usa ka pagsulay alang sa usa ka parameter nga wala mausab.

Gitas-on nga hilo. Ang gitas-on sa mga karakter sa bili sa parameter.

Ang mosunod nga upat ka matang sa pagpalapad sa parameter nagahatag sa pagproseso sa substring. Sa matag kaso, ang nota sa pagparis sa pattern (tan-awa ang Pattern sa Shell), kay sa regular nga notasyon sa ekspresyon, gigamit aron sa pagtimbang-timbang sa mga sumbanan. Kung ang parameter mao ang * o @, ang resulta sa pagpalapad dili matino. Ang pag-enclos sa bug-os nga parameter pagpalapad hut-ong sa double-quotes dili hinungdan sa mosunod nga upat ka mga matang sa pattern nga mga karakter nga gikutlo, samtang ang pagkutlo sa mga karakter nga anaa sa sulod sa mga braces adunay kini nga epekto.

Kuhaa ang Kinagamay nga Suffix Pattern. Ang pulong gipalapad aron makahatag og sumbanan. Ang parameter nga pagpalapad unya moresulta sa mga parameter, uban sa kinagamyang bahin sa suffix nga gipares sa sumbanan nga natanggal.

Kuhaa ang Laraw nga Suffix Pattern. Ang pulong gipalapad aron makahatag og sumbanan. Ang parameter nga pagpalapad unya moresulta sa mga parameter, uban sa kinadak-ang bahin sa suffix nga gipares sa sumbanan nga natanggal.

Kuhaa ang Kinagamay nga Sumbanan nga Awto Ang pulong gipalapad aron makahatag og sumbanan. Ang parameter nga pagpalapad unya moresulta sa mga parameter, uban sa kinagamyang bahin sa prefix nga gipares sa sumbanan nga natanggal.

Kuhaa ang Sumbanan sa Pinakadakung Awto. Ang pulong gipalapad aron makahatag og sumbanan. Ang parameter nga pagpalapad unya moresulta sa mga parameter, uban sa kinadak-ang bahin sa prefix nga gipares sa sumbanan nga natanggal.

Pagsumiter sa Pagpailalom

Ang pagpuli sa utlanan nagtugot sa output sa usa ka sugo nga ilisan puli sa ngalan sa command mismo. Ang pagpuli sa Command adunay mahitabo kon ang sugo gilakip sama sa mosunod:

$ (sugo)

o Po `` backquoted '' version Pc:

`sugo`

Ang casing nagpalapad sa command substitution pinaagi sa pagpatuman sa command sa usa ka subshell nga palibot ug pagpuli sa command substitution uban ang standard output sa command, pagkuha sa mga han-ay sa usa o labaw pa nga s sa katapusan sa pagpuli. (Ang gitangtang nga s sa wala pa ang katapusan sa output wala mawala; apan, sa panahon sa pagbahin sa kapatagan, mahimong hubaron kini ngadto sa s, depende sa bili sa IFS ug sa pagkutlo nga kini adunay epekto.)

Pagpalapad sa Aritmetika

Ang pagpalapad sa aritmetika naghatag og usa ka mekanismo alang sa pag-usisa sa usa ka pagpahayag sa aritmetika ug pag-ilis sa bili niini. Ang pormat alang sa pagpalapad sa aritmetika mao ang mosunod:

$ ((ekspresyon))

Ang ekspresyon giisip nga ingon nga kini anaa sa doble nga mga kinutlo, gawas nga ang doble nga kinutlo sulod sa ekspresyon wala gitagad sa labi. Ang kabhang nagpalapad sa tanan nga mga ilhanan sa ekspresyon alang sa pagpalapad sa parameter, pag-ilis sa sugo, ug pagkutlo sa pagtangtang.

Sunod, ang mga kabhang nagtratar niini isip usa ka pagpahayag sa aritmetika ug nagpuli sa bili sa ekspresyon.

White Space Splitting (Paglain sa Field)

Human sa pagpalapad sa mga parameter, ang pag-ilis sa sugo, ug pagpalapad sa aritmetika ang kabhang nagsusi sa mga resulta sa mga pagpalapad ug mga kapuli nga wala mahitabo sa doble nga mga kinutlo alang sa pagbahin sa kapatagan ug daghang mga natad mahimong moresulta.

Ang kabhang nagtratar sa matag kinaiya sa IFS ingon nga delimiter ug gigamit ang mga delimiters sa pag-split sa mga resulta sa pag-uswag sa parameter ug pag-ilis sa sugo ngadto sa mga kaumahan.

Gitaghan ang Ngalan (File Name Generation)

Gawas kon ang f - bandila gipahimutang, ang henerasyon sa paghimo sa ngalan gihimo pagkatapos mahuman ang pagbahin sa pulong. Ang matag pulong giisip ingon nga usa ka serye sa mga sumbanan, gibulag sa mga slashes. Ang proseso sa pagpalapad nagpuli sa pulong uban sa mga ngalan sa tanan nga mga kasamtangan nga mga file kansang mga ngalan mahimong maporma pinaagi sa pag-ilis sa matag sumbanan sa usa ka hugpong nga nahiangay sa gitakda nga sumbanan. Adunay duha ka mga pagpugong niini: una, usa ka sumbanan dili motakdo sa usa ka hugpong nga adunay usa ka slash, ug ikaduha, ang usa ka sumbanan dili makatupong sa usa ka hugpong nagsugod sa usa ka panahon gawas kon ang unang kinaiya sa sumbanan usa ka panahon. Ang sunod nga seksyon naghulagway sa mga sumbanan nga gigamit alang sa pagpalapad sa Pathname ug sa kaso (1) nga sugo.

Mga Pattern sa Shell

Ang usa ka panig-ingnan naglangkob sa normal nga mga karakter, nga nagatakdo sa ilang mga kaugalingon, ug meta-characters. Ang mga meta-karakter mao ang ``! '' `` * '' ``? '' Ug `` ['' Kini nga mga karakter nawad-an sa ilang espesyal nga mga kahulogan kon kini gikutlo. Kon ang command o variable substitution gipahigayon ug ang dollar sign o back quotes dili double nga gikutlo, ang bili sa variable o ang output sa command ma-scan alang niini nga mga karakter ug kini mahimong meta-characters.

Ang usa ka asterisk (`` * '') nahiuyon sa bisan unsang mga karakter. Ang usa ka marka sa pangutana motakdo sa bisan unsang usa ka karakter. Ang usa ka left bracket (`` ['') nagpaila sa usa ka character class. Ang katapusan sa karakter nga klase gipakita sa usa (`` ') kung ang ``]' 'wala na dayon ang `` [' 'katumbas sa usa ka `` [' 'kay sa pagpaila sa usa ka karakter nga klase. Ang usa ka kinaiya nga klase nagatumbas sa bisan unsang mga karakter tali sa mga square brackets. Ang usa ka lainlaing mga karakter mahimong matino gamit ang minus nga timaan. Ang kinaiya nga klase mahimong madugangan pinaagi sa paghimo sa usa ka exclamation point ang unang karakter sa karakter nga klase.

Sa pag-apil sa usa ka `` '' 'sa klase sa karakter, himoa nga ang unang karakter nga gilista (human sa ``!' 'Kung aduna man). Sa paglakip sa minus nga timaan, himoa nga ang una o katapusan nga kinaiya nga gilista

Gitukod

Kini nga seksyon naglista sa mga gitukod nga mga sugo nga gitukod tungod kay sila kinahanglan nga mohimo sa pipila ka mga operasyon nga dili mahimo pinaagi sa usa ka linain nga proseso. Gawas pa niini, adunay ubay-ubay nga uban nga mga sugo nga mahimong himoon alang sa pagka-epektibo (eg echo 1).

:

Usa ka null command nga nagbalik sa 0 (tinuod) nga exit value.

. file

Ang mga sugo sa gitakda nga file gibasa ug gipatuman sa kabhang.

alias [ ngalan [ = string ... ]]

Kon ang ngalan = ang gitino, ang kabhang nagtino sa ngalan sa alias nga may balor sa bili Kung ang ngalan lamang ang gitino, ang bili sa ngalan sa alias gipatik. Nga walay mga argumento, ang mga alias nga gimugna nagpatik sa mga ngalan ug mga bili sa tanan nga gihubit nga mga alyas (tan-awa unasaas)

bg [ trabaho] ...

Ipadayon ang gipili nga mga trabaho (o ang kasamtangan nga trabaho kon walay trabaho nga gihatag) sa luyo.

command command arg ...

Ipatuman ang espesipikong gitukod nga mando. (Kini mapuslanon kon adunay usa ka function sa kabhang nga adunay sama nga ngalan sama sa usa ka command sa builtin.)

cd [ directory ]

Pagbalhin ngadto sa gitakda nga direktoryo (default $ HOME) Kung ang usa ka entry alang sa CDPATH makita diha sa kalikupan sa cd nga komand o ang variant sa kabhang CDPATH gitakda ug ang pangalan sa direktoryo wala magsugod sa usa ka slash, dayon ang mga direktoryo nga gilista sa CDPATH ang pangitaon alang sa gitakda nga direktoryo. Ang format sa CDPATH parehas sa PATH Sa usa ka interactive nga kabhang, ang cd command mag-print sa ngalan sa direktoryo nga aktwal nga gibalhin sa kung kini lahi sa ngalan nga gihatag sa user. Mahimo kining lahi tungod kay ang mekanismo sa CDPATH gigamit o tungod kay ang usa ka simbolo nga sumpay gilabyan.

eval string ...

Hupti ang tanan nga mga argumento sa mga luna. Dayon i-parse ug ipatuman ang sugo.

pagpatuman [ command arg ... ]

Gawas kon ang sugo wala ilakip, ang proseso sa kabhang gipulihan sa gitakda nga programa (nga kinahanglan nga usa ka tinuod nga programa, dili usa ka kabhang nga gitukod o gigamit). Ang bisan unsa nga redirections sa exec command nga gimarkahan isip permanente, aron dili kini ma-undone kon ang command exec finish.

exit [ exitstatus ]

Pag-undang sa proseso sa kabhang. Kon ang exitstatus gihatag kini gigamit isip exit status sa kabhang; kay kon dili ang exit status sa nauna nga sugo gigamit.

pag-export ngalan ...

export -p

Ang mga espesipikong ngalan gipadala aron kini makita sa palibot sa sunod nga mga sugo. Ang bugtong paagi sa pag-export sa usa ka variable mao ang pag-unset niini. Ang kabhang nagtugot sa bili sa usa ka variable nga ibutang sa samang higayon nga kini gieksport pinaagi sa pagsulat

export name = value

Wala'y mga argumento nga gilista sa export command ang mga ngalan sa tanang mga exportable nga mga baryable. Uban sa pili - pili nga gipasabut ang output ang mahimong pormat para sa dili paggamit sa interactive.

fc [- editor ] [ una [ katapusang ]]

fc-l [- nr ] [ una [ katapusang ]]

fc -s [ daan = bag-o ] [ una ]

Ang fc gitukod nga mga lista, o pag-edit ug pag-execute, mga sugo nga una nga gisudlan sa usa ka interactive shell.

-e editor

Gamita ang editor nga ginganlan sa editor aron mag-edit sa mga sugo. Ang hilis sa editor usa ka ngalan sa komand, nga gipangita pinaagi sa PATH variable. Ang bili sa variable FCEDIT gigamit ingon nga usa ka default nga kung - e wala tino. Kon ang FCEDIT null o wala gibutang, ang bili sa EDITOR nga kapilian gigamit. Kon ang EDITOR walay kapuslanan, ang ed (1) gigamit ingon nga editor.

-l (ell)

Ilista ang mga sugo kay sa paggamit sa usa ka editor niini. Ang mga sugo gisulat sa han-ay nga gipakita sa una ug sa katapusan nga mga operand, ingon nga apektado sa - r sa matag sugo nga gisundan sa command number.

-n

Susuron ang mga numero sa komando sa paglista uban sa -l.

-r

Balikan ang han - ay sa mga sugo nga gilista (nga - l o gi - edited (uban ang wala - l ni - s)

-s

Usba pag-usab ang mando nga dili mogamit sa usa ka editor.

una

katapusang

Pilia ang mga sugo sa paglista o pag-edit. Ang gidaghanon sa naunang mga sugo nga mahimong ma-access mahibal-an pinaagi sa bili sa matag usa nga variant sa HISTSIZE . Ang bili sa una o katapusan o ang duha usa sa mosunod:

[+] numero

Usa ka positibo nga gidaghanon nga nagrepresentar sa numero sa komando; ang mga numero sa komisyon mahimong ipakita uban sa - l nga opsyon.

-number

Usa ka negatibo nga numero sa desimal nga naghawas sa sugo nga gipatuman ang gidaghanon sa mga sugo kaniadto. Pananglitan, -1 mao ang gilayon nga nauna nga sugo.

hilo

Usa ka hilisgutan nga nagpakita sa labing bag-o nga gisudlan nga sugo nga nagsugod sa maong hilo. Kung ang daan nga = bag-o nga operand wala usab matino sa - ang porma sa hugpong sa unang operand dili mahimong adunay usa ka gitagbo nga managsama nga timaan.

Ang mosunod nga mga variable sa kalikopan nakaapekto sa pagpatuman sa fc:

FCEDIT

Ngalan sa editor nga gamiton.

MAHITUNGOD

Ang gidaghanon sa naunang mga sugo nga ma-abli.

fg [ trabaho ]

Pagbalhin sa gipili nga trabaho o sa kasamtangan nga trabaho ngadto sa foreground.

nagkuha sa pag-optic sa var

Ang POSIX getopts nga sugo, nga dili ikalibog sa Bell Labs -derived getopt (1).

Ang unang argumento kinahanglan nga usa ka sunod-sunod nga mga sulat, nga ang matag usa mahimo nga gisundan sa usa ka colon aron ipakita nga ang kapilian nagkinahanglan og argumento. Ang gibag-o nga hugpong gibutang sa parse nga kapilian.

Ang mando sa getopts nagpugong sa tigulang nga getopt (1) nga utility tungod sa pagdumala sa mga argumento nga adunay whitespace.

Ang mga getopts builtin mahimo gamiton aron makakuha og mga kapilian ug ang ilang mga argumento gikan sa usa ka lista sa mga parameter. Sa dihang gitawag, ang getopts nagbutang sa bili sa sunod nga kapilian gikan sa kapilian nga string sa listahan sa variance sa kabhang nga gitakda sa var ug kini index sa shell variable OPTIND Sa diha nga ang kabhang gisangpit, ang OPTIND gisugod sa 1. Para sa matag opsyon nga nagkinahanglan usa ka argumento, ang mga getopts builtin ibutang kini sa kabhang sa variable OPTARG Kung ang usa ka opsyon wala gitugotan sa optstring unya ang OPTARG dili ibutang.

Ang opt-op ay usa ka hilisgutan nga giila nga kapilian nga mga letra. Kon ang usa ka sulat gisundan sa usa ka colon, ang kapilian gilauman nga adunay usa ka panaglalis nga mahimo o dili mahimulag gikan niini pinaagi sa puti nga luna. Kung ang usa ka opsyon nga kinaiya dili makita kung diin gipaabot, ang mga getopts magpahimutang sa variable nga var sa usa ka ``? '' Ang mga getopts unya dili magamit sa OPTARG ug mosulat sa output ngadto sa standard error. Pinaagi sa pag-ingon nga ang usa ka colon ingon nga ang una nga kinaiya sa pagsabut sa tanan nga mga sayop dili ibalewala.

Ang usa ka nonzero value ibalik kon ang katapusan nga kapilian maabot. Kung walay nahibilin nga mga argumento, ang mga getopt mag-set sa var sa espesyal nga kapilian, `` - '' kung dili, kini mag-set sa var sa ``? ''

Ang mosunod nga tipik sa code nagpakita kon unsaon pagproseso sa usa ang mga argumento alang sa usa ka sugo nga makahimo sa mga kapilian [a] ug [b] ug ang kapilian [c] nga nagkinahanglan og usa ka argumento.

samtang nagkuha sa abc: f
buhata
kaso $ f sa
usa ka | b) bandila = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; exit 1 ;;
esac
nahimo
ibalhin `expr $ OPTIND - 1`

Kini nga kodigo modawat sa bisan unsang mosunod nga katumbas:

cmd -acarg file file
cmd -a -c arg file file
cmd -carg -a file file
cmd -a -carg - file file

hash -rv nga sugo ...

Ang panit nagpabilin sa usa ka hash table nga nakahinumdom sa mga lokasyon sa mga sugo. Nga walay mga argumento bisan unsa, ang hash command nagpatik sa mga sulod niini nga lamesa. Ang mga entry nga wala tan-aw sukad nga ang katapusan nga cd nga komandante gimarkahan og usa ka asterisk; posible nga kining mga pagsulod mahimong dili balido.

Uban sa mga argumento, ang hash command nagwagtang sa mga tinud-an nga mga sugo gikan sa hash table (gawas kon kini ang mga gimbuhaton) ug dayon kini gipahimutang. Uban sa mga - v nga kapilian, ang hash nag-imprinta sa mga lokasyon sa mga sugo ingon nga kini nakakaplag niini. Ang r- opsiyon maoy hinungdan sa hash nga mando nga makuha ang tanan nga mga entries sa hash table gawas sa mga gimbuhaton.

trabaho [ trabaho ]

I-print ang proseso sa id sa mga proseso sa trabaho. Kon ang argumento sa trabaho wala ilakip, ang kasamtangan nga trabaho gigamit.

trabaho

Kini nga mando naglangkob sa tanang proseso sa kaagi nga mga anak sa kasamtangan nga proseso sa kabhang.

pwd

I-print ang kasamtangan nga direktoryo. Ang gitukod nga mando mahimong magkalahi gikan sa programa sa sama nga ngalan tungod kay ang command sa builtin nahinumdom sa unsa ang kasamtangan nga direkta kay sa pag-recomputing niini matag higayon. Kini makahimo niini nga mas paspas. Apan, kon ang kasamtangan nga direktoryo giusab, ang gitukod nga bersyon sa pwd magpadayon sa pag-print sa daan nga ngalan alang sa directory.

basaha ang [- p prompt ] [- r ] variable ...

Ang aghat ipaimprinta kon ang pili nga gipili ug ang standard input usa ka terminal. Dayon ang linya gibasa gikan sa standard nga input. Ang nahimutangan nga bag-ong linya mapapas gikan sa linya ug ang linya gibahin sama sa gihulagway sa seksyon sa pulong nga nabahin sa ibabaw, ug ang mga bahin gi-assign sa mga variable sa han-ay. Labing menos usa ka variable kinahanglan nga tino. Kon adunay daghang mga piraso kay sa mga baryable, ang nahibilin nga mga piraso (uban sa mga karakter sa IFS nga nagbulag kanila) gi-assign ngadto sa katapusan nga variable. Kon adunay daghan nga mga baryable kay sa mga piraso, ang nahabilin nga mga baryable gi-assign sa null nga pisi. Ang read readin magpaila sa kalampusan gawas kung ang EOF nahibalag sa input, diin ang kapakyasan gibalik.

Sa tinuud, gawas kung ang gitakda nga r - gipili, ang backslash `` \ '' molihok isip usa ka karakter nga makalingkawas, nga hinungdan sa mosunod nga kinaiya nga pagtratar literal. Kon ang usa ka backslash gisundan sa usa ka newline, ang backslash ug ang newline paga-usikan.

readonly ngalan ...

readonly -p

Ang mga espesipikong mga ngalan gimarkahan ingon nga basahon lamang, aron dili kini mahimong sunod nga usbon o wala ibutang. Ang kabhang nagtugot sa bili sa usa ka variable nga ibutang sa samang panahon kini gimarkahan nga basahon lamang pinaagi sa pagsulat

readonly name = value

Wala'y mga argumento nga ang mga readonly nga sugo naglista sa mga ngalan sa tanan nga gibasa lamang nga mga baryable. Uban sa pili - pili nga gipasabut ang output ang mahimong pormat para sa dili paggamit sa interactive.

nagtakda [[- kapilian] + mga kapilian | - arg ... ]

Ang gitakda nga sugo nagabuhat sa tulo ka nagkalain nga mga gimbuhaton.

Nga walay mga argumento, kini naglista sa mga bili sa tanang mga variables sa kabhang.

Kon ang mga kapilian gihatag, kini nagtakda sa mga gipili nga mga flags nga opsyon, o paghawan niini sama sa gihulagway sa seksyon nga gitawag og Sx Argument List Processing.

Ang ikatulong paggamit sa set command mao ang pag-set sa mga bili sa positional parameter sa kabhang sa espesipikong args. Aron usbon ang positional parameter nga dili mausab ang bisan unsang mga kapilian, gamit ang `` - '' ingon nga unang argumento nga ibutang. Kung wala'y mga argumento, ang tinudlong komand sa pag-ayo sa tanan nga positional parameters (katumbas sa pagpatuman sa `` shift $ #. ''

lainlaing bili

Nagtudlo sa bili sa matag usa. (Sa kinatibuk-an mas maayo nga isulat ang variable = bili kay sa paggamit sa setvar setvar gituyo nga gamiton sa mga gimbuhaton nga naghatag mga bili sa mga baryable nga ang mga ngalan gipasa ingon nga mga parameter.)

pagbalhin [ n ]

Pagbalhin sa positional nga parametro n nga mga panahon. Ang usa ka pagbalhin nagtakda sa bili sa $ 1 ngadto sa kantidad nga $ 2 ang kantidad nga $ 2 ngadto sa kantidad nga $ 3 ug uban pa, nga nagpakunhod sa bili sa $ # sa usa. Kung ang n mas labaw pa kay sa gidaghanon sa positional nga mga parameter, ang pagbalhin mag-isyu sa usa ka mensahe sa sayup, ug mogawas uban ang status sa pagbalik 2.

mga panahon

I-print ang naipon nga panahon sa tiggamit ug sistema alang sa kabhang ug alang sa mga proseso nga modagan gikan sa kabhang. Ang status sa pagbalik mao ang 0.

bitbit ang aksyon signal ...

Tungod ang mga kabhang sa pagpa-parse ug pagpatuman sa aksyon sa diha nga ang bisan unsa nga mga tinud-an nga mga signal ang madawat. Ang mga sinyales gitino pinaagi sa signal number. Kung ang signal mao ang 0 ang aksyon gipatuman sa dihang mogawas ang kabhang. Ang aksyon mahimong null o `` - '' ang kanhing hinungdan sa tinud-an nga signal nga dili ibalewala ug ang ulahi maoy hinungdan sa default action nga pagakuhaon. Sa diha nga ang kabhang nanggula gikan sa usa ka subshell , kini gibalik nga natanggong (apan dili gibalewala) mga signal ngadto sa default nga aksyon. Ang mando sa lit-ag walay epekto sa mga signal nga wala manumbaling sa pagsulod sa kabhang.

type [ ngalan ... ]

Paghubad sa matag ngalan isip usa ka sugo ug i-print ang resolusyon sa pagpangita sa sugo. Ang posible nga resolusyon mao ang: shell keyword, alias, shell shell , command, track alias ug dili makita. Alang sa mga alias ang pagpalapad sa alyas gipatik; alang sa mga sugo ug gisubay nga mga alyas ang kumpletong agianan nga agianan sa sugo gipatik.

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

Ipangutana o ibutang ang lisud o humok nga mga limitasyon sa mga proseso o pagbutang og bag-ong mga limitasyon. Ang pagpili tali sa malig-on nga limitasyon (nga walay bisan unsang proseso nga gitugotan sa paglapas, ug nga dili mapataas sa higayon nga kini gipaubos) ug hinay nga limitasyon (nga maoy hinungdan nga ang mga proseso nga gipahibalo apan dili kinahanglan nga gipatay, ug nga mahimo nga gipataas) gihimo uban sa kini nga mga bandila:

-H

pagpahimutang o pagpangutana mahitungod sa lisud nga mga limitasyon

-S

pagtakda o pagpakisayud mahitungod sa mga limitado nga mga limitasyon. Kung wala - H sa wala'y S ang gisulti, ang soft limit nga gipakita o ang duha nga limitasyon gitakda. Kung ang duha gipasabot, ang katapusang usa makadaog.

Ang limitado nga gisukitsukit o gipahimutang, unya, gipili pinaagi sa pagtino sa usa sa mga bandila:

-a

ipakita ang tanang mga limitasyon karon

-t

ipakita o ibutang ang limitasyon sa oras sa CPU (sa mga segundo)

-f

ipakita o i-set ang limit sa pinakadako nga file nga mahimo (sa 512-byte nga mga bloke)

-d

ipakita o ibutang ang limitasyon sa sukod sa datos nga bahin sa proseso (sa kilobytes)

-s

ipakita o ibutang ang utlanan sa gidak-on nga stack sa usa ka proseso (sa kilobytes)

-c

ipakita o ibutang ang utlanan sa kinadak-ang gidak-on sa doble nga dump nga mahimo (sa 512-byte nga mga bloke)

-m

ipakita o ibutang ang limitasyon sa kinatibuk-ang pisikal nga panumduman nga mahimong magamit sa usa ka proseso (sa kilobytes)

-l

ipakita o ibutang ang limitasyon kon unsa ka daghang panumduman ang usa ka proseso nga maka-lock uban sa mlock (2) (sa kilobytes )

-p

ipakita o ibutang ang limitasyon sa gidaghanon sa mga proseso nga mahimo niini nga user sa usa ka higayon

-n

ipakita o i-set ang limit sa gidaghanon nga mga file nga mahimo nga bukas dayon ang usa ka proseso

Kung walay bisan usa niini nga gitino, kini ang limitasyon sa gidak-on sa file nga gipakita o gipahimutang. Kon ang bili nahibal-an, ang utlanan gibutang sa maong numero; kon dili ang kasamtangan nga limitasyon gipakita.

Ang mga limit sa usa ka arbitraryong proseso mahimo nga gipakita o gigamit gamit ang sysctl (8) nga utility.

umask [ maskara ]

Ibutang ang bili sa umask (tan-awa ang umask (2)) ngadto sa gituyo nga octal value. Kon wala ang argumento, ang imprinta nga umask naimprinta.

unalias [- usa ] [ ngalan ]

Kon ang ngalan gipasabut, ang basiyo makawagtang sa alias. Kung - usa ang gipasabut, ang tanan nga mga alyas gikuha.

gibutang ang ngalan ...

Ang mga piho nga mga kapilian ug mga gimbuhaton wala gibutang ug wala ibutyag. Kon ang usa ka ngalan adunay katumbas sa usa ka variance ug usa ka function, ang variable ug ang function wala mausab.

maghulat [ trabaho ]

Paghulat sa gipili nga trabaho aron makompleto ug ibalik ang status sa exit sa katapusan nga proseso sa trabaho. Kung wala ang argumento, paghulat sa tanan nga trabaho nga mahuman ug ang pagbalik sa usa ka exit status nga zero.

Pag-edit sa Linya sa Command

Kon ang sh gigamit interactively gikan sa usa ka terminal, ang kasamtangan nga command ug ang command history (tan-awa ang fc sa Sx Builtins) mahimong i-edit gamit ang vi-mode nga pag-edit sa linya sa linya. Kini nga paagi naggamit sa mga sugo, nga gihulagway sa ubos, susama sa usa ka tipik sa mga gihulagway sa panid sa tawo. Ang sugo nga 'set' -o vi makapahimo sa pag-usab sa vi-mode ug ibutang ang sh sa vi insert mode. Uban sa mahimo sa vi-mode, ang sh mahimong ibalhin tali sa insert mode ug command mode. Ang editor wala gihulagway sa hingpit dinhi, apan anaa sa usa ka ulahi nga dokumento. Sama kini sa vi: pag-type sa Aq ESC nga itugyan ka sa command VI command mode. Pag-igo sa Aq nga pagbalik samtang sa command mode moagi sa linya sa kabhang.

Importante: Gamita ang tawo nga sugo ( % man ) aron makita kung giunsa ang usa ka sugo nga gigamit sa imong partikular nga computer.