Bash - Linux Command - Unix Command

NGALAN

bash - GNU Bourne-Again SHell

SYNOPSIS

bash [mga kapilian] [file]

DESCRIPTION

Ang Bash usa ka sh -compatible command language interpreter nga nagpatuman sa mga sugo nga mabasa gikan sa standard input o gikan sa usa ka file. Gikonektar usab ni Bash ang mapuslanong bahin gikan sa Korn ug C shells ( ksh ug csh ).

Ang Bash gituyo aron mahimong usa ka pagpatuman sa IEEE POSIX Shell ug Tools Specification (IEEE Working Group 1003.2).

MGA PILION

Gawas pa sa mga opsyon sa usa ka kinaiya nga gisulat diha sa paghulagway sa set command nga gitukod, isaysay ang mga mosunod nga mga kapilian sa dihang kini gisangpit:

-c string

Kon ang -c nga kapilian anaa, dayon ang mga sugo mabasa gikan sa lambo . Kung adunay mga argumento human sa hugpong , sila gi-assign sa positional nga mga parameter, sugod sa $ 0 .

-i

Kon ang -i nga kapilian anaa, ang kabhang mao ang interactive .

-l

Himoa ang bash nga daw ingon nga kini gisangpit ingon nga usa ka shell shell (tan-awa ang INVOCATION sa ubos).

-r

Kon ang opsiyon sa -r anaa, ang kabhang mahimo nga mapugngan (tan-awa ang NAGKAMATUOD nga ubos sa ubos).

-s

Kon ang opsiyon sa -s anaa, o kung walay mga argumento nga magpabilin human sa pagproseso sa opsyon, dayon ang mga sugo mabasa gikan sa standard input. Kini nga kapilian nagtugot sa positional nga mga parametro nga ipahimutang sa paggamit sa usa ka interactive shell.

-D

Ang usa ka lista sa tanang gikutlo nga duha ka linyang giunahan sa $ gipatik sa standard ouput. Kini mao ang mga hilisgutan nga nasakop sa paghubad sa pinulongan kung ang karon nga lugar dili C o POSIX . Kini nagpasabot sa -n nga kapilian; walay mga sugo nga ipatuman.

[- +] O [ shopt_option ]

Ang shopt_option usa sa mga kapilian sa kabhang nga gidawat sa shopt builtin (tan-awa ang SHELL BUILTIN COMMANDS sa ubos). Kon ang shopt_option anaa, -Ang gipahamtang sa bili niana nga kapilian; + O mga magtotoo niini. Kon ang shopt_option wala gihatag, ang mga ngalan ug mga bili sa mga kapilian sa kabhang nga gidawat sa shopt gipatik sa standard output. Kon ang opsyon sa pagpangamuyo mao ang O , ang output gipakita sa usa ka format nga mahimo nga gamiton pag-usab ingon nga input.

-

Usa ka - nagpaila sa katapusan sa mga kapilian ug nagpugong sa dugang pagproseso sa kapilian. Ang bisan unsang argumento human sa - giisip nga mga filename ug argumento. Ang argumento sa - katumbas sa - .

Gihubad usab ni Bash ang daghang opsyon sa multi-character. Kining mga kapilian kinahanglan nga makita sa linya sa komandante sa dili pa mailhan ang mga kapilian sa usa ka karakter.

--dump-po-strings

Katumbas sa -D , apan ang output anaa sa GNU gettext po (portable object) file format.

--dump-strings

Katumbas sa -D .

- tabang

Ipakita ang usa ka mensahe sa paggamit sa standard output ug magmalampuson.

- init nga file sa file

- file sa file

Pag-execute sa mga commands gikan sa file inay sa standard personal initialization file ~ /. Bashrc kung ang shell usa ka interactive (tan-awa ang INVOCATION sa ubos).

--sulod

Katumbas sa -l .

- walay paglaum

Ayaw gamita ang librarya sa GNU readline aron basahon ang command line kon ang shell usa ka interactive.

--noprofile

Ayaw basaha bisan ang system-wide startup file / etc / profile o bisan unsang mga personal initialization files ~ / .bash_profile , ~ / .bash_login , o ~ / .profile . Sa baylo, ang bash mabasa kini nga mga file sa dihang kini gisangpit ingon nga usa ka shell shell (tan-awa ang INVOCATION sa ubos).

--norc

Ayaw pagbasa ug pagpatuman sa personal initialization file ~ /. Bashrc kung ang shell usa ka interactive. Ang kini nga kapilian mao ang sa default kon ang kabhang gitawag nga sh .

- Pixix

Usba ang kinaiya sa bash kung diin ang default nga operasyon lahi gikan sa POSIX 1003.2 standard aron sa pagpares sa standard ( posix mode ).

- Dili mapugngan

Ang kabhang nahimong limitado (tan-awa ang NAGKAMATARONG SA SHELL sa ubos).

--rpm-nagkinahanglan

Ipakita ang lista sa mga file nga gikinahanglan alang sa script sa paglupad. Kini nagpasabot nga '-n' ug ubos sa samang mga limitasyon sama sa pag-usisa sa pag-checking sa error sa oras; Ang mga backtick, [] nga mga pagsulay, ug ang mga eval dili gisusi aron ang uban nga mga dependency mahimong dili makit-an. - Oo nga katumbas sa -v .

- pagbalhin

Ipakita ang impormasyon sa bersyon alang niining pananglitan sa bash sa standard nga output ug magmalampuson nga mogawas.

Mga argumento

Kon ang mga argumento magpabilin human sa pagproseso sa opsyon, ug bisan ang -c ni ang -s nga kapilian gihatag, ang unang argumento gituohan nga ang ngalan sa usa ka file nga adunay mga command shell. Kon ang bash gitawag sa niini nga paagi, ang $ 0 gitakda sa ngalan sa file, ug ang positional nga mga parametro gibutang sa nahabilin nga mga argumento. Bash mabasa ug magpatuman sa mga sugo gikan niini nga file, dayon mogawas. Ang exit status ni Bash mao ang exit status sa katapusang command nga gipatuman sa script. Kung walay mga sugo nga gipatuman, ang exit status mao ang 0. Usa ka paningkamot nga una gihimo aron sa pag-abli sa file sa kasamtangan nga direktoryo, ug, kung walay nakit-an nga file, dayon ang bansay mangita sa mga direktoryo sa PATH alang sa script.

PAGPADALA

Ang usa ka shell nga pang- login mao ang usa kansang una nga kinaiya sa argumento zero usa ka - , o usa nga gisugdan sa - login nga kapilian.

Ang usa ka interactive nga kabhang mao ang sinugdanan nga walay mga argumento nga walay mga kapilian ug walay mga opsiyon sa -c nga ang standard input ug output parehas nga konektado sa mga terminal (sumala sa gitino sa isatty (3)), o usa nga nagsugod sa -i nga kapilian. Ang PS1 gitakda ug $ - naglakip sa i kung ang bash usa ka interactive, nagtugot sa usa ka shell script o usa ka startup file aron sulayan kini nga kahimtang.

Gihubit sa mosunod nga parapo kung giunsa paghimo sa bash ang mga file sa pagsugod niini. Kung adunay bisan usa sa mga file nga anaa apan dili mabasa, ang mga pagreport adunay sayup. Ang mga Tildes gipalapad sa mga ngalan sa file nga gihulagway sa ubos ubos sa Pagpalapad ni Tilde sa EXPANSION section.

Sa diha nga ang bash gitawag ingon nga usa ka interactive nga kabhang sa pag-login, o ingon nga usa ka dili-interactive nga kabhang uban sa opsyon sa --login , kini una nga magbasa ug magpatuman sa mga sugo gikan sa file / etc / profile , kon adunay file. Human sa pagbasa sa maong file, kini nangita alang sa ~ / .bash_profile , ~ / .bash_login , ug ~ / .profile , niana nga kapunongan, ug pagbasa ug pagpatuman sa mga sugo gikan sa una nga anaa ug mabasa. Ang - opsyon sa noprofile mahimong gamiton sa diha nga ang kabhang nagsugod sa pagpugong niini nga kinaiya.

Sa dihang mogawas ang usa ka shell shell, magbasa ug mag-execute sa mga comma gikan sa file ~ / .bash_logout , kon kini anaa.

Sa diha nga ang usa ka interactive nga kabhang nga dili usa ka panid sa pagsugod gisugdan, ang bash mabasa ug ipatuman ang mga sugo gikan sa ~ /. Bashrc , kung ang maong file anaa. Kini mahimo nga likway pinaagi sa paggamit sa --norc nga kapilian. Ang opsiyon sa file sa -rcfile mopugos sa bash sa pagbasa ug pagpatuman sa mga sugo gikan sa file imbis nga ~ / . Bashrc .

Sa diha nga ang bash nagsugod nga dili interactively, aron sa pagpadagan sa usa ka script sa panit, pananglitan, kini nagapangita sa variable nga BASH_ENV sa kalikupan, gipalapdan ang bili kon kini makita didto, ug gigamit ang gipalapdan nga bili ingon nga ngalan sa usa ka file nga pagbasa ug pagpatuman . Si Bash naggawi ingon nga ang mosunod nga sugo gipamatay:

kung [-n "$ BASH_ENV"]; unya. "$ BASH_ENV"; fi

apan ang bili sa variable nga PATH wala gigamit sa pagpangita sa ngalan sa file.

Kung ang bash gitawag sa ngalan nga sh , kini nagsulay sa pagsundog sa sinugdan nga kinaiya sa makasaysayan nga mga bersyon sa sh nga sama ka masayon, samtang nagsunod sa POSIX standard usab. Kon ipangutana ingon nga usa ka interactive nga kabhang sa paglitok , o usa ka dili-interactive nga kabhang uban sa opsyon sa --login , kini una nga nagsulay sa pagbasa ug pagpatuman sa mga sugo gikan sa / etc / profile ug ~ / .profile , sa maong order. Ang opsyon sa --noprofile mahimo nga gamiton sa pagpugong niini nga kinaiya. Sa dihang gisangpit ingon nga usa ka interactive nga kabhang sa ngalan sh , ang bash nagapangita sa variable nga ENV , gipalapdan ang bili kon kini gipasabut, ug gigamit ang gipalapdan nga bili ingon nga ngalan sa usa ka file nga mabasa ug ipatuman. Tungod kay ang usa ka kabhang nga gihangyo ingon nga sh wala mosulay sa pagbasa ug pagpatuman sa mga sugo gikan sa bisan unsang lain nga mga file sa pagsugod, ang opsyon sa - rcfile walay epekto. Ang usa ka dili-interactive nga kabhang nga gisangpit uban sa ngalan sh wala mosulay sa pagbasa sa bisan unsang lain nga mga file sa pagsugod. Sa dihang gitawag nga sh , ang bash mosulod sa posix mode human mabasa ang mga startup file.

Sa diha nga ang bash gisugdan sa posix mode, sama sa opsyon sa command line --posix , nagsunod kini sa POSIX standard alang sa mga startup file. Niini nga paagi, ang mga interactive shells mopalapad sa env variable ug ang mga sugo gibasa ug gipatuman gikan sa file kansang ngalan mao ang pinalapad nga bili. Walay laing mga startup file ang gibasa.

Si Bash misulay sa pagtino kon kini gidagan sa hilit nga shell nga demonyo, kasagaran rshd . Kung gipamatud- an sa bash nga kini gipadagan sa rshd , kini nagbasa ug nagpatuman sa mga sugo gikan sa ~ /. Bashrc , kung ang maong file anaa ug mabasa. Dili kini buhaton kung kini gitawag ingon sh . Ang -norc nga kapilian mahimong gamiton sa pagpugong niini nga kinaiya, ug ang opsyon sa - rcfile mahimo nga gamiton sa pagpugos sa laing file nga mabasa, apan ang rshd dili sa kasagaran magamit ang kabhang uban niini nga mga kapilian o tugotan kini nga matino.

Kung ang panukot gisugdan sa epektibo nga user (grupo) id nga dili katumbas sa tinuod nga user (grupo) id, ug ang -p dili gihatag, walay mga startup file ang gibasa, ang mga function sa shell dili napanunod gikan sa kinaiyahan, ang SHELLOPTS nga mabag-o, kung kini makita sa kalikupan, wala panumbalinga, ug ang epektibong user id gipahimutang sa tinuod nga user id. Kon ang -p nga kapilian gihatag sa pagsangpit, ang startup nga panggawi managsama, apan ang epektibong user id wala mausab.

KAHULUGAN

Ang mosunod nga mga kahulogan gigamit sa tibuok nga bahin niini nga dokumento.

blangko

Usa ka luna o tab.

pulong

Usa ka han-ay sa mga karakter nga giisip nga usa ka yunit sa kabhang. Nailhan usab nga usa ka timaan .

ngalan

Usa ka pulong nga naglangkob lamang sa mga alphanumeric nga mga karakter ug mga underscore, ug nagsugod sa alpabetikong kinaiya o underscore. Giila usab nga usa ka identifier .

metacharacter

Usa ka kinaiya nga, kung dili gikutlo, nagbulag sa mga pulong. Usa sa mosunod:

| &; () <> espasyo nga tab

pagkontrol sa operator

Usa ka timaan nga naghimo sa pagpugong sa pagkontrol. Kini usa sa mosunod nga mga simbolo:

|| & &; ;; () |

GISUGDAN NGA MGA PULONG

Ang natipigan nga mga pulong mga pulong nga adunay usa ka espesyal nga kahulogan sa kabhang. Ang mosunod nga mga pulong giila ingon nga gireserba kung wala gikutlo ug ang unang pulong sa usa ka yano nga sugo (tan-awa ang SHELL GRAMMAR sa ubos) o ang ikatulong pulong sa usa ka kaso o alang sa sugo:

! ang kaso nahimo nga elif lain nga esac fi for function kung sa pagpili dayon hangtud nga samtang {} panahon [[]]

SHELL GRAMMAR

Simple nga mga Sugo

Ang usa ka yano nga sugo mao ang han-ay sa mga opsyonal nga variable nga mga takda nga gisundan sa blangko nga mga pulong nga gibahin ug mga redirections, ug gitapos sa usa ka operator nga kontrol . Ang unang pulong nagtino sa sugo nga ipatuman, ug ipasa ingon nga argumento zero. Ang nahibilin nga mga pulong gipasa ingon nga mga argumento sa gisangpit nga sugo.

Ang bili sa pagbalik sa usa ka yano nga sugo mao ang exit status niini, o 128+ n kon ang sugo gitapos pinaagi sa signal n .

Pipelines

Ang usa ka pipeline usa ka han-ay sa usa o labaw pa nga mga sugo nga gibulag sa kinaiya | . Ang format alang sa usa ka pipeline mao ang:

[ panahon [ -p ]] [! ] sugo [ | command2 ...]

Ang standard nga output sa komand konektado pinaagi sa usa ka tubo ngadto sa standard input sa command2 . Kini nga koneksyon gihimo sa dili pa ang bisan unsa nga mga redirections nga gitakda sa sugo (tan-awa ang PAGBABAGO sa ubos).

Kung ang gitagana nga pulong ! nag-una sa usa ka pipeline, ang exit nga kahimtang sa pipeline mao ang makatarunganon nga dili sa exit status sa katapusan nga komand. Kay kon dili, ang kahimtang sa pipeline mao ang exit status sa katapusang sugo. Ang kabhang nagahulat sa tanan nga mga sugo sa linya sa pipeline aron undangon sa dili pa ibalik ang bili.

Kon ang panahon nga gitagana nga pulong nag-una sa usa ka pipeline, ang nahabilin ingon man ang panahon sa tiggamit ug sistema nga gikaon pinaagi sa pagpatuman niini gitaho sa dihang natapos ang linya sa pipeline. Ang -p nga kapilian nag-usab sa format sa output nga gipahayag sa POSIX. Ang variable nga TIMEFORMAT mahimong ibutang sa usa ka format nga hugpong nga nagtino kung giunsa nga gipakita ang impormasyon sa tayming; tan-awa ang paghulagway sa TIMEFORMAT ubos sa Variable Shell sa ubos.

Ang matag command sa usa ka pipeline gipatuman isip usa ka linain nga proseso (ie, sa usa ka subshell).

Mga Listahan

Ang usa ka listahan usa ka han-ay sa usa o labaw pa nga mga linya sa tubo nga gibulag sa usa sa mga operator ; , & , && , o || , ug kapilian nga gitapos sa usa ; , & , o .

Sa niining listahan sa mga operators, && ug || adunay managsama nga sumbanan, gisundan ; ug &, nga adunay managsama nga sumbanan.

Ang usa ka han-ay sa usa o labaw pa nga mga bag-ong mga linya mahimong makita diha sa usa ka lista imbis nga usa ka titik-koma aron sa paghikaw sa mga sugo.

Kon ang usa ka sugo gitapos sa operator sa kontrol & , ang kabhang nagpatuman sa sugo sa likod sa usa ka subshell. Ang kabhang wala maghulat sa sugo nga mahuman, ug ang status sa pagbalik mao ang 0. Mga sugo nga gibulag sa usa ka ; gipatay sa sunod-sunod; ang kabhang nagahulat alang sa matag sugo nga undangon usab. Ang status sa pagbalik mao ang exit nga kahimtang sa katapusang sugo nga gipatuman.

Ang control operators && ug || nagpasabot sa mga listahan sa AT ug mga lista, matag usa. Ang usa ka AND list adunay porma

command1 && command2

ang command2 gipatuman kung, ug kung ang command1 lamang ang mobalik sa usa ka exit status nga zero.

Ang OR list adunay porma

command1 || sugo2

Ang command2 gipatuman kon ug kung ang command1 lamang ang mobalik sa dili-zero exit status. Ang status sa pagbalik sa AND ug OR list mao ang exit status sa katapusang sugo nga gipatuman sa lista.

Compound Commands

Usa ka compound nga sugo mao ang usa sa mosunod:

( listahan )

Ang lista gipatuman sa usa ka subshell. Ang mga assignment nga lainlain ug mga gimugna nga mga sugo nga nakaapekto sa palibot sa kabhang wala magpabilin nga epektibo pagkahuman sa sugo. Ang status sa pagbalik mao ang exit status sa lista .

{ list ; }

Ang lista gipatuman lamang sa kasamtangan nga kabhang sa palibot. Ang lista kinahanglan ihunong sa usa ka newline o semicolon. Kini nailhan nga usa ka grupo nga sugo . Ang status sa pagbalik mao ang exit status sa lista . Timan-i nga dili sama sa metacharacters ( ug ) , { ug } giandam nga mga pulong ug kinahanglan mahitabo diin ang usa ka gitagana nga pulong gitugutan nga mailhan. Tungod kay dili kini hinungdan sa usa ka pulong nga pahulay, kinahanglan nga kini ibulag gikan sa lista pinaagi sa whitespace.

(( ekspresyon ))

Ang ekspresyon gi-evaluate sumala sa mga lagda nga gihulagway sa ubos ubos sa ARITHMETIC EVALUATION . Kung ang bili sa ekspresyon dili zero, ang status sa pagbalik mao ang 0; kon dili ang status sa pagbalik mao ang 1. Kini tukma nga katugbang sa " pagpahayag ".

[[ ekspresyon ]]

Ibalik ang kahimtang nga 0 o 1 depende sa pagtimbang-timbang sa conditional expression expression . Ang mga ekspresyon gilangkuban sa mga primarya nga gihulagway sa ubos ubos sa CONDITIONAL EXPRESS . Ang pagbahin sa pulong ug pagpalapad sa agianan wala gihimo sa mga pulong tali sa [[ ug ]] ; pag-uswag sa tilde, parameter ug kapilian nga pagpalapad, pagpalapad sa aritmetika, pag-ilis sa sugo, pag-substitution sa proseso, ug pagtangtang sa pagkutlo gipahigayon.

Sa diha nga gigamit ang == ug ! = Mga operator, ang hilo sa tuo sa operator giisip nga usa ka sumbanan ug gipasibo sumala sa mga lagda nga gihulagway sa ubos ubos sa Matching Pattern . Ang bili sa pagbalik mao ang 0 kung ang hugpong sa mga posporo o dili parehas sa sumbanan, matag usa, ug kung dili. Ang bisan unsang bahin sa sumbanan mahimong gikutlo aron ipugos kini nga itandi ingon nga usa ka hilo.

Ang mga ekspresyon mahimong hiniusa gamit ang mosunod nga mga operators, nga gilista sa nagkunhod nga han-ay sa pagkasunod:

( ekspresyon )

Mibalik ang bili sa ekspresyon . Mahimo kini nga gamiton sa pagsalikway sa normal nga sumbanan sa mga operators.

! pagpahayag

Tinuod kung dili tinuod ang ekspresyon .

expression1 && expression2

Tinuod kung ang ekspresyon1 ug ekspresyon2 tinuod.

expression1 || expression2 Tinuod kung ang ekspresyon1 o ekspresyon2 tinuod.

Ang && ug || Ang mga operators wala mag-evaluate sa ekspresyon2 kon ang bili sa ekspresyon1 igo na aron mahibal-an ang pagbalik sa bili sa tibuok conditional expression.

alang sa ngalan [ diha sa pulong ]; ilista ; nahimo

Ang lista sa mga pulong nga nagsunod sa gipalapdan, nga naglangkob sa listahan sa mga butang. Ang variable nga ngalan gibutang sa matag elemento niini nga listahan, ug ang lista gipatuman sa matag higayon. Kon ang sa pulong wala ilakip, ang alang sa sugo ipatuman ang lista kausa alang sa matag posisyong parameter nga gipahimutang (tan-awa ang MGA PARAMETERS sa ubos). Ang status sa pagbalik mao ang exit status sa katapusang sugo nga gipatuman. Kon ang pagpalapad sa mga butang nga mosunod sa mga sangputanan sa usa ka walay sulod nga listahan, walay mga sugo nga ipatuman, ug ang status sa pagbalik mao ang 0.

alang sa (( expr1 ; expr2 ; expr3 )); ilista ; nahimo

Una, ang ekspresyon sa aritmetika expr1 gibana-bana sumala sa mga lagda nga gihulagway sa ubos ubos sa ARITHMETIC EVALUATION . Ang ekspresyon sa aritmetika expr2 dayon gibana-bana nga gibalik-balik hangtud nga kini mag-evaluate sa zero. Ang matag oras expr2 mag-evaluate sa usa ka dili-zero nga bili, ang lista gipatuman ug ang aritmetika nga ekspresyong expr3 gibana-bana. Kon ang bisan unsa nga ekspresyon nga wala iapil, kini naglihok nga sama sa kini nga pag-evaluate sa 1. Ang pagbalik sa bili mao ang exit nga kahimtang sa katapusang sugo sa lista nga gipatuman, o bakak kon ang bisan unsang mga ekspresyon dili balido.

pagpili sa ngalan [ sa pulong ]; ilista ; nahimo

Ang lista sa mga pulong nga nagsunod sa gipalapdan, nga naglangkob sa listahan sa mga butang. Ang hugpong sa gipalapad nga mga pulong gipatik sa standard nga sayup, ang matag usa giunhan sa usa ka numero. Kon wala sa pulong ang wala ilakip, ang positional nga mga parametro gipatik (tan-awa ang MGA PARAMETERS sa ubos). Gipakita dayon ang prompt nga PS3 ug usa ka linya nga mabasa gikan sa standard input. Kon ang linya naglangkob sa usa ka numero nga katumbas sa usa sa gipasundayag nga mga pulong, nan ang bili sa ngalan gipahimutang niana nga pulong. Kung ang linya walay sulod, ang mga pulong ug aghat gipakita pag-usab. Kon basahon ang EOF, ang kompleto nga kompleto. Ang bisan unsang pagbasa sa bili hinungdan nga ang ngalan ibutang nga null. Ang linya nga gibasa maluwas sa REKLAMO . Ang lista gipatuman human sa matag pagpili hangtud nga ang usa ka break command gipatuman. Ang exit status sa pagpili mao ang exit status sa katapusang command nga gipatay sa lista , o zero kung wala'y mga sugo nga gipatuman.

case nga pulong sa [[(] sumbanan [ | sumbanan ]

Ang usa ka command command una nga nagpalapad sa pulong , ug naningkamot sa pagpares niini batok sa matag sumbanan usab, gamit ang parehas nga mga lagda nga sama sa pagpalapad sa agianan sa dalan (tan-awa ang Pagpalapad sa Ngalan sa ubos). Sa diha nga ang usa ka dula makita, ang katugbang nga lista gipatuman. Human sa una nga duwa, walay sunod nga mga tugma ang gisulayan. Ang kahimtang sa exit mao ang zero kon walay sumbanan nga kapares. Kay kon dili, kini ang exit status sa katapusang sugo nga gipatuman sa lista .

kon ang listahan ; dayon paglista; [ listahan sa elif ; dayon paglista ; ] ... [ laing lista ; ] fi

Ang listahan kung gipatuman. Kung ang exit status niini zero, ang lista gipatuman. Kay kon dili, ang matag lista sa elif gipatuman usab, ug kung ang exit status niini zero, ang katugbang unya nga lista gipatuman ug ang kompleto nga kompleto. Kay kon dili, ang laing listahan gipatuman, kung anaa. Ang exit status mao ang exit status sa katapusang command executed, o zero kung walay kondisyon nga gisulayan tinuod.

samtang ang listahan ; ilista ; nahimo

hangtud nga lista ; ilista ; nahimo

Ang komand nga padayon padayon nga nagpatuman sa do list basta ang katapusan nga command sa listahan nagbalik sa exit status nga zero. Ang hangtud nga sugo susama sa utlanan sa panahon , gawas nga ang pagsulay gihulga; ang lista sa buhaton ipatuman basta ang katapusan nga command sa listahan mobalik sa dili-zero exit status. Ang exit nga kahimtang sa panahon ug hangtud nga ang mga sugo mao ang exit nga kahimtang sa katapusang do list nga gipatuman, o zero kung walay gipatay.

[ function ] ngalan () { list ; }

Kini naghubit sa usa ka function nga ginganlan nga ngalan . Ang lawas sa pag-obra mao ang listahan sa mga sugo sa taliwala {ug}. Kini nga lista gipatuman sa higayon nga ang ngalan gitawag nga ngalan sa usa ka yano nga sugo. Ang exit status sa usa ka function mao ang exit status sa katapusang sugo nga gipatuman sa lawas. (Tan-awa ang mga FUNCTION sa ubos.)

MGA KOMENTARYO

Sa usa ka dili-interactive nga kabhang, o usa ka interactive shell nga diin ang opsyon sa interactive_comments sa shopt builtin nakab-ot (tan-awa ang SHELL BUILTIN COMMANDS sa ubos), usa ka pulong nga nagsugod sa # hinungdan niini nga pulong ug ang tanang nahibilin nga mga karakter sa linya nga dili ibalewala. Ang usa ka interactive nga kabhang kung wala ang mga opsiyon sa interactive_comments nakapahimo sa dili pagtugot sa mga komentaryo. Ang opsyon sa interactive_comments anaa sa default nga mga interactive shell.

PAGPILI

Ang pagkutlo gigamit aron makuha ang linaing kahulogan sa pipila ka mga karakter o mga pulong sa kabhang. Ang pagkutlo mahimo gamiton aron dili ma-espesyal ang pagtagad sa mga espesyal nga karakter, aron mapugngan ang naluwas nga mga pulong gikan sa pag-ila ingon nga ingon, ug aron mapugngan ang pagpalapad sa parameter.

Ang matag usa sa mga metacharacters nga gilista sa ibabaw ubos sa DEFINISYON adunay espesyal nga kahulogan sa kabhang ug kinahanglan nga gikutlo kung kini mao ang magrepresentar sa iyang kaugalingon.

Sa dihang gigamit ang mga pasilidad sa pagpalapad sa sugo sa kasaysayan, ang kasagaran nga pagpalapad sa kinaiya ! , kinahanglan nga gikutlo aron malikayan ang pagpalapad sa kasaysayan.

Adunay tulo ka mga mekanismo nga nagkutlo: ang kinaiya sa pag-ikyas , nag-iisa nga mga kinutlo, ug dobleng mga kinutlo.

Ang dili gikutlo nga backslash ( \ ) mao ang kinaiya nga makagawas . Gipanalipdan niini ang literal nga bili sa sunod nga kinaiya nga mosunod, gawas sa . Kung ang usa ka \ nga pares magpakita, ug ang backslash dili gikutlo sa iyang kaugalingon, ang \ giisip nga usa ka pagpadayon sa linya (nga mao, kini gikuha gikan sa input stream ug epektibo nga gisalikway).

Ang paglakip sa mga karakter sa usa ka kinutlo magpreserbar sa literal nga bili sa matag karakter sulod sa mga kinutlo. Ang usa ka kutay dili mahimong mahitabo tali sa usa nga mga kinutlo, bisan pa sa nag-una nga backslash.

Ang paglakip sa mga karakter sa dobleng mga kinutlo nagpreserbar sa literal nga bili sa tanang mga karakter sulod sa mga kinutlo, gawas sa $ , ` , ug \ . Ang mga sinulat nga $ ug ` magpabilin sa ilang espesyal nga kahulogan sulod sa doble nga mga kinutlo. Ang backslash magpabilin lamang sa iyang espesyal nga kahulogan kon sundan sa usa sa mga mosunod nga mga karakter: $ , ` , " , \ , o . Ang usa ka double quote mahimo nga gikutlo sulod sa double quotes pinaagi sa nag-una niini uban ang backslash.

Ang espesyal nga mga sumbanan * ug @ adunay espesyal nga kahulogan kung adunay double quotes (tan-awa ang PARAMETERS sa ubos).

Ang mga pulong sa porma nga $ ' string ' espesyal nga gitagad. Ang pulong nagpalapad ngadto sa hilo , nga ang mga backslash-escaped nga mga karakter gipulihan ingon nga gituohan sa ANSI C standard. Ang mga sunod-sunod nga pag-ikyas sa Backslash, kung anaa karon, gisusi ingon sa mosunod:

\ a

Alerto (kampana)

\ b

backspace

\ e

usa ka karakter nga makagawas

\ f

porma nga feed

\ n

Bagong linya

Ang r

iuli ang karwahe

\ t

pinahigda nga tab

\ v

bertikal nga tab

\\

backslash

'

single quote

\ nnn

ang walo ka bit character nga ang bili mao ang octal value nnn (usa ngadto sa tulo ka numero)

\ x HH

ang walo ka bit character nga ang bili mao ang hexadecimal value HH (usa o duha ka hex digit)

\ c x

usa ka kontrol nga kinaiya

Ang gipalapdan nga resulta mao ang usa nga gikutlo, ingon nga ang wala pa mahitabo ang dolyar.

Ang usa ka double-quoted nga string nga gisundan sa usa ka dolyar nga ilhanan ( $ ) ang hinungdan nga ang hilo mahubad sumala sa kasamtangan nga lugar. Kung ang kasamtangan nga lugar mao ang C o POSIX , ang dolyar nga simbolo wala panumbalinga. Kon ang hilo gihubad ug gipulihan, ang kapuli nga gikutlo.

MGA PARAMETERS

Ang usa ka parametro mao ang usa ka entidad nga nagtipig og mga bili Kini mahimong ngalan , numero, o usa sa mga espesyal nga karakter nga gilista sa ubos ubos sa Espesyal nga Parameter . Alang sa mga katuyoan sa kabhang, usa ka variable ang usa ka parameter nga gipaila sa ngalan . Ang usa ka variable adunay usa ka bili ug zero o labaw pa nga mga kinaiya . Ang mga kinaugalingon gi-assign gamit ang deklarasyon nga gitukod nga command (tan-awa ang ipahayag sa ubos sa SHELL BUILTIN COMMANDS).

Ang usa ka lagda gipahimutang kung kini gi-assign usa ka bili. Ang null string usa ka balido nga bili. Sa higayon nga ang usa ka variable mahimo nga gibutang, kini mahimo nga wala ibutang lamang pinaagi sa paggamit sa unset builtin command (tan-awa ang SHELL BUILTIN COMMANDS sa ubos).

Ang usa ka baryable mahimong itudlo ngadto sa usa ka pahayag sa porma

ngalan = [ bili ]

Kung ang bili wala mahatag, ang bawtista gi-assign sa null string. Ang tanan nga mga prinsipyo moagi sa pagpalapad sa tilde, parameter ug kapilian nga pagpalapad, pagpuli sa sugo, pagpalapad sa aritmetika, ug pagtangtang sa pagkutlo (tan-awa EXPANSION sa ubos). Kung ang variable adunay integer attribute set, nan ang bili naa sa pagpalapad sa aritmetika bisan kung ang $ (()) expansion dili gigamit (tan-awa ang Pagpalapad sa Aritmetika sa ubos). Ang pagbahin sa pulong wala gihimo, gawas sa "$ @" nga gipasabut sa ubos ubos sa Special Parameters . Ang pagpalapnag sa dalan dili gipahigayon. Ang mga pahayag sa assignment mahimo usab nga makita isip mga argumento sa pag- deklarar , pag- type , pag-eksport , pagbasa , ug mga lokal nga gimugna nga mga sugo.

Positional Parameters

Ang usa ka positional nga parameter mao ang usa ka parameter nga gipaila sa usa o labaw pa nga mga numero, gawas sa usa ka digit nga 0. Ang posisyon nga mga parametro gi-assign gikan sa mga argumento sa kabhang sa dihang kini gisangpit, ug mahimong i-reassign gamit ang set builtin command. Ang positional nga mga lagda dili mahimong itudlo ngadto sa mga pahayag sa assignment. Ang positional nga mga lagda temporaryo nga gipulihan kung ang usa ka function sa kabhang gipatuman (tan-awa ang FUNCTIONS sa ubos).

Kung ang usa ka positional parameter nga naglangkob sa labaw pa kay sa usa ka digit nga gipalapdan, kinahanglan kini ilakip sa mga brace (tan-awa EXPANSION sa ubos).

Espesyal nga Parameter

Ang kabhang nagtratar sa ubay-ubay nga mga parameter. Kini nga mga sumbanan mahimo lamang nga gihisgutan; Gitugutan ang pagtudlo kanila.

*

Nagpalapad sa positional parameters, sugod gikan sa usa. Sa diha nga ang pagpalapad mahitabo sulod sa dobleng mga kinutlo, kini nagapalapad sa usa ka pulong nga adunay bili sa matag parametro nga gibulag sa unang karakter sa IFS special variable. Nga mao, ang " $ * " katumbas sa " $ 1 c $ 2 c ... ", diin ang c mao ang unang karakter sa bili sa variable nga IFS . Kung ang IFS wala mabutang, ang mga parametro gibulag sa mga luna. Kung ang IFS null, ang mga parametro giduyugan nga wala mag-intervening separators.

@

Nagpalapad sa positional parameters, sugod gikan sa usa. Sa diha nga ang pagpalapad mahitabo sulod sa doble nga mga kinutlo, ang matag parametro mapalapad sa usa ka linain nga pulong. Nga mao, ang " $ @ " katumbas sa " $ 1 " " $ 2 " ... Sa dihang wala'y positional nga parameter, " $ @ " ug $ @ mapalapad ngadto sa wala (ie, kini gikuha).

#

Nagapalapad sa gidaghanon sa positional nga mga parameter sa desimal.

?

Nagapalapad sa kahimtang sa labing bag-o nga gipatuman nga pipeline sa atubangan.

-

Nagapalapad sa kasamtangang kapilian nga mga bandila nga gilatid sa pagsangpit, sa gitakda nga komon nga gitukod, o kadtong gitakda sa kabhang mismo (sama sa pagpili sa -i ).

$

Nagpalapad sa proseso sa ID sa kabhang. Sa usa ka () subshell, kini nagapalapad sa proseso sa ID sa kasamtangan nga kabhang, dili ang subshell.

!

Nagapalapad sa proseso sa ID sa pinaka bag-o nga gipatuman nga background (asynchronous) nga sugo.

0

Nagapalapad sa ngalan sa kabhang o panid sa kabhang. Kini gitakda sa pagsugod sa kabhang. Kon ang bash gisangpit sa usa ka file sa mga comma, $ 0 gitakda sa ngalan sa maong file. Kung ang bash nagsugod sa -c nga kapilian, dayon $ 0 gitakda ngadto sa unang argumento human nga ang string nga ipatuman, kung ang usa anaa. Kay kon dili, kini gibutang sa ngalan sa file nga gigamit sa pagtawag sa bash , ingon nga gihatag sa argumento zero.

_

Sa pagsugod sa kinhason, ibutang sa absolute file nga ngalan sa shell o shell script nga gipatuman ingon nga gipasa sa listahan sa argumento. Human niana, nagpalapad sa kataposang argumento sa nauna nga sugo, human sa pagpalapad. Ipahimutang usab ang hingpit nga ngalan sa ngalan sa matag sugo nga gipatuman ug ibutang sa palibot nga gi-eksport sa maong sugo. Sa pag-check sa mail, kini nga parameter naghupot sa ngalan sa mail file nga gi-check karon.

Mga Variable sa Shell

Ang mosunod nga mga kabahin gibutang sa kabhang:

BASH

Nagapalapad sa hingpit nga ngalan sa file nga gigamit sa paghimo niini nga pananglitan sa bash .

BASH_VERSINFO

Usa ka readonly array nga kansang mga miyembro naghupot sa bersyon nga kasayuran alang niining pananglitan sa bash . Ang mga bili nga gi-assign sa mga sakop nga sakop mao ang mosunod:

BASH_VERSINFO [ 0]

Ang mayor nga bersyon nga numero (ang pagpagawas ).

BASH_VERSINFO [ 1]

Ang menor de edad nga bersyon nga numero (ang bersyon ).

BASH_VERSINFO [ 2]

Ang lebel sa patch.

BASH_VERSINFO [ 3]

Ang bersyon sa pagtukod.

BASH_VERSINFO [ 4]

Ang status sa pagpagawas (pananglitan, beta1 ).

BASH_VERSINFO [ 5]

Ang bili sa MACHTYPE .

BASH_VERSION

Nagapalapad sa usa ka hugpong nga naghulagway sa bersyon niini nga pananglitan sa bash .

COMP_CWORD

COMP_LINE

Ang kasamtangan nga command line. Kini nga variance anaa lamang sa mga function sa kabhang ug mga panggawas nga komand nga gisangpit sa mga programmable nga pagkompleto sa mga pasilidad (tan-awa ang Programmable Completion sa ubos).

COMP_POINT

COMP_WORDS

Usa ka variable nga paglihok (tan-awa ang mga Arrays sa ubos) nga gilangkoban sa tagsa-tagsa nga mga pulong sa kasamtangan nga command line. Kini nga variance anaa lamang sa mga function sa kabhang nga gisangpit sa mga programmable nga pagkompleto sa mga pasilidad (tan-awa ang Programmable Completion sa ubos).

DIRSTACK

Usa ka variable nga paglihok (tan-awa ang mga Arrays sa ubos) nga adunay sulod nga kasamtangan nga sulod sa directory stack. Ang mga directory makita sa stack sa han-ay nga gipakita sa mga dirs builtin. Ang pag-assign sa mga miyembro niini nga kapilian sa paggamit mahimo nga gamiton sa pag-usab sa mga direktoryo nga anaa na sa stack, apan ang pushd ug popd builtins kinahanglan gamiton aron idugang ug kuhaon ang mga directory. Ang assignment sa niini nga variable dili mag-usab sa kasamtangan nga directory. Kung ang DIRSTACK wala mahatag, kini nawala ang iyang mga espesyal nga kabtangan, bisan kung kini pag-reset.

EUID

Nagpalapad sa epektibong user ID sa kasamtangang tiggamit, nagsugod sa pagsugod sa kabhang. Kining variable nga readonly.

FUNCNAME

Ang ngalan sa bisan unsang function nga shell nga karon-executing. Ang kini nga kausaban naa lamang kung ang usa ka function sa kabhang nagpatuman. Ang mga assignment sa FUNCNAME walay epekto ug ibalik ang usa ka status error. Kung ang FUNCNAME wala mahatag, kini nawad-an sa mga espesyal nga kabtangan niini, bisan pa kini gitakda.

GROUPS

Ang usa ka variable nga naglangkob sa listahan sa mga grupo diin ang kasamtangan nga gumagamit usa ka sakop. Ang mga assignment sa GROUPS walay epekto ug pag-uli sa usa ka kahimtang sa sayup. Kon ang mga GROUPS wala mahatag, kini nawad-an sa mga espesyal nga kabtangan niini, bisan pa kini gitakda.

HISTCMD

Ang numero sa kasaysayan, o indeks sa listahan sa kasaysayan, sa kasamtangan nga sugo. Kung ang HISTCMD wala mausab, kini mawad-an sa iyang mga espesyal nga kabtangan, bisan pa nga kini gitakda.

HOSTNAME

Awtomatiko nga ibutang sa ngalan sa kasamtangan nga panon.

HOSTTYPE

Awtomatik nga gibutang sa usa ka lambo nga talagsaong naghulagway sa matang sa makina nga gipatuman sa bash . Ang default mao ang system-dependent.

LINENO

Sa matag higayon nga kini nga parametro ang gihisgutan, ang kapuli makapausab sa usa ka decimal nga numero nga nagrepresentar sa kasamtangan nga sunod-sunod nga numero sa linya (sugod sa 1) sulod sa usa ka script o function. Kung dili sa usa ka script o function, ang bili nga gipuli dili garantiya nga mahimong makahuluganon. Kung ang LINENO wala mahatag, kini nawad-an sa mga espesyal nga kabtangan niini, bisan pa kini gitakda.

MACHTYPE

Awtomatiko nga gibutang sa usa ka hilo nga hingpit nga naghulagway sa matang sa sistema nga gipatuman sa bash , diha sa standard nga format sa GNU cpu-company-system . Ang default mao ang system-dependent.

OLDPWD

Ang kanhi nagtrabaho nga direktoryo nga gitakda sa cd command.

OPTARG

Ang bili sa katapusang opsyon nga argumento nga giproseso sa getopts builtin command (tan-awa ang SHELL BUILTIN COMMANDS sa ubos).

OPTIND

Ang index sa sunod nga argumento nga iproseso sa getopts builtin command (tan-awa ang SHELL BUILTIN COMMANDS sa ubos).

OSTYPE

Awtomatiko nga gibutang sa usa ka lambo nga naghulagway sa operating system nga gipatuman sa bash . Ang default mao ang system-dependent.

PIPESTATUS

Ang usa ka variable nga array (tan-awa ang Arrays sa ubos) nga adunay usa ka lista sa exit status values ​​gikan sa mga proseso sa labing bag-o nga gipatuman nga foreground nga tubo (nga mahimo nga adunay usa lamang ka sugo).

PPID

Ang proseso ID sa ginikanan sa kabhang. Kining variable nga readonly.

PWD

Ang kasamtangan nga nagtrabaho nga direktoryo nga gitakda sa cd command.

RANDOM

Sa matag higayon nga kini nga parameter gihisgutan, usa ka random nga integer sa taliwala sa 0 ug 32767 ang nakuha. Ang pagkasunod-sunod sa mga random nga mga numero mahimo nga gisugdan pinaagi sa paghatag usa ka bili sa RANDOM . Kung wala ang RANDOM , kini nawad-an sa mga espesyal nga kabtangan niini, bisan pa kini gitakda.

REPLY

Ibutang sa linya sa input nga mabasa sa readin command nga commandin kung walay mga argumento nga gihatag.

SECONDS

Sa matag higayon nga kini nga parameter gihisgutan, ang gidaghanon sa mga segundo sukad ang pagsangyaw sa panukid gibalik. Kon ang usa ka bili gihatag ngadto sa SECONDS , ang bili nga nahibalik sa nagsunod nga mga pakisayran mao ang gidaghanon sa mga segundo sukad sa asaynment ug ang bili nga gihatag. Kung ang SECONDS wala mahitabo, kini nawad-an sa mga espesyal nga kabtangan niini, bisan pa kini gitakda.

SHELLOPTS

Usa ka lista nga nahimulag sa kolon nga makahimo sa mga kapilian sa kabhang. Ang matag pulong sa listahan usa ka balidong argumento alang sa -o nga kapilian sa set builtin command (tan-awa ang SHELL BUILTIN COMMANDS sa ubos). Ang mga opsyon nga makita sa SHELLOPTS mao kadtong gitaho ingon sa sa set -o . Kon kini nga variable anaa sa kalikopan kon ang bash magsugod, ang matag kapilian sa kabhang sa lista mapahigayon sa dili pa magbasa sa bisan unsang mga startup file. Kining variable nga read-only lang.

SHLVL

Nagdugang sa usa ka higayon sa usa ka higayon sa pagsugod sa bash .

UID

Nagpalapad sa user ID sa kasamtangan nga tiggamit, nagsugod sa pagsugod sa kabhang. Kining variable nga readonly.

Ang mosunod nga mga baryable gigamit sa kabhang. Sa pipila ka mga kaso, ang bash nag-assign sa usa ka default nga bili sa usa ka variable; kini nga mga kaso gihisgutan sa ubos.

BASH_ENV

Kon kini nga parameter gipahimutang sa dihang ang Bash nagpatuman sa usa ka script sa usa ka kabhang, ang bili niini gihubad nga usa ka filename nga adunay mga sugo aron ipasugod ang kabhang, sama sa ~ / . Bashrc . Ang bili sa BASH_ENV gipailalom sa pagpalapad sa mga parameter, pag-ilis sa sugo, ug pagpalapad sa aritmetika sa wala pa gihubad nga ngalan sa usa ka file. Ang PATH wala gigamit aron sa pagpangita sa sangputanan nga ngalan sa file.

CDPATH

Ang dalan sa pagpangita alang sa cd nga sugo. Kini usa ka listahan sa mga direktoryo nga gibulag sa kolon diin ang panit nagapangita alang sa mga direksyon sa destinasyon nga gilatid sa cd command. Ang usa ka sample nga bili mao ang ".: ~: / Usr".

COLUMNS

Gigamit sa mga piniling gitukod nga mando aron pagtino sa lapad sa terminal sa pag-imprinta sa lista sa pagpili. Awtomatikong ibutang sa resibo sa SIGWINCH.

GIHIGUGMA

Usa ka hugpong sa paglihok nga diin gibasa sa bash ang posible nga pagkompleto nga gihimo pinaagi sa usa ka function sa kabhang nga gisangon sa pasilidad sa programmable nga pagkompleto (tan-awa ang Programmable Completion sa ubos).

FCEDIT

Ang default editor alang sa fc builtin nga sugo.

FIGNORE

Ang usa ka listahan sa mga suffix nga gibulag sa colon nga dili ibalewala sa paghuman sa paghuman sa filename (tan-awa ang READLINE sa ubos). Usa ka filename nga adunay suffix nga usa sa mga entries sa FIGNORE wala gilakip gikan sa lista sa mga matched nga mga filename. Ang usa ka sample nga bili mao ang ".o: ~".

GLOBIGNORE

Usa ka lista nga gibulag sa colon nga mga sumbanan nga nagpaila sa mga hugpong sa mga pangalan nga dili ibalewala sa pagpalapad sa agianan sa dalan. Kon ang usa ka filename nga giparis sa usa ka dalan nga pagpalapad nga sumbanan usab nga susama sa usa sa mga sumbanan sa GLOBIGNORE , kini gikuha gikan sa lista sa mga posporo.

HISTCONTROL

Kung gipahimutang sa usa ka bili sa ignorespace , ang mga linya nga nagsugod sa usa ka luna nga karakter wala gisulod sa lista sa kasaysayan. Kon ibutang sa usa ka bili sa mga ignoredups , ang mga linya nga nagtumbok sa katapusan nga linya sa kasaysayan wala gisulod. Ang usa ka bili sa ignoreboth nagsagol sa duha ka mga kapilian. Kon wala ibutang, o kung ibutang sa bisan unsa nga lain nga bili kay sa ibabaw, ang tanan nga linya nga mabasa sa parser maluwas sa listahan sa kasaysayan, ubos sa bili sa HISTIGNORE . Ang function nga variable nga gipulihan sa HISTIGNORE . Ang ikaduha ug sunod nga mga linya sa usa ka multi-line compound nga sugo wala gisulayan, ug gidugang sa kasaysayan bisan unsa man ang bili sa HISTCONTROL .

KABUHI

Ang ngalan sa file diin ang sugo sa kasaysayan maluwas (tan-awa ang HISTORY sa ubos). Ang default nga bili mao ang ~ / . Bash_history . Kon wala mausab, ang kasaysayan sa sugo dili maluwas sa dihang ang usa ka interactive shell mogula.

HISTOLILESIZE

Ang maximum nga gidaghanon sa mga linya nga anaa sa file sa kasaysayan. Sa diha nga kini nga variable nga gihatag sa usa ka bili, ang kasaysayan file nga giputol, kon gikinahanglan, nga maglangkob dili na kay sa gidaghanon sa mga linya. Ang default nga bili mao ang 500. Ang file sa kasaysayan usab giputol sa kini nga gidak-on human sa pagsulat niini sa diha nga ang usa ka interactive nga shell mogawas.

HISTIGNORE

Usa ka lista nga gibulag nga kolonon nga gigamit aron paghukom unsa nga mga linya sa komand ang maluwas sa lista sa kasaysayan. Ang matag sumbanan gisangkapan sa sinugdanan sa linya ug kinahanglan nga ipares ang kompleto nga linya (walay piho nga ` * 'ang gitaad). Ang matag sumbanan gisulayan batok sa linya human ang mga tseke nga gitakda sa HISTCONTROL gipadapat. Gawas pa sa normal nga pagsulud sa panig-ingnan nga mga simbolo, ang ` & 'nahiuyon sa naunang linya sa kasaysayan. ` ug 'mahimong makalingkawas gamit ang backslash; Gikuha ang backslash sa wala pa gisulayan ang usa ka duwa. Ang ikaduha ug sunod nga mga linya sa multi-line compound nga sugo wala gisulayan, ug gidugang sa kasaysayan bisan unsa man ang bili sa HISTIGNORE .

MAHITUNGOD

Ang gidaghanon sa mga sugo nga mahinumduman sa kasaysayan sa sugo (tan-awa ang HISTORY sa ubos). Ang default nga bili mao ang 500.

HOME

Ang home directory sa kasamtangan nga user; ang default nga argumento alang sa cd builtin nga sugo. Ang bili sa kini nga baryante gigamit usab sa paghimo sa pagpalapad sa tilde.

HOSTFILE

Naglangkub sa ngalan sa usa ka file sa samang pormat sama sa / etc / hosts nga kinahanglan basahon kung gikinahanglan ang kabhang aron makompleto ang hostname. Ang lista sa posible nga pagkompleto sa tagbalay mahimong mabag-o samtang ang kabhang nagdagan; Sa sunod higayon nga pagkompleto sa hostname gisulayan human mausab ang bili, ang bash nagdugang sa mga sulod sa bag-ong file ngadto sa kasamtangan nga lista. Kon ang HOSTFILE gitakda, apan walay bili, ang mga paningkamot sa pagbasa sa / etc / host aron makuha ang lista sa posibleng pagkompleto sa hostname. Kung ang HOSTFILE wala mabutang, ang listahan sa hostname gihawanan.

IFS

Ang Internal Field Separator nga gigamit alang sa pagbahin sa pulong human sa pagpalapad ug sa pagbahin sa mga linya ngadto sa mga pulong uban sa readin nga gitukod nga mando. Ang default nga bili mao ang `` ''.

IGNOREEOF

Gikontrol ang aksyon sa usa ka interactive nga kabhang sa pagkadawat sa usa ka EOF nga kinaiya isip usa lamang nga input. Kung itakda, ang bili mao ang gidaghanon sa sunod-sunod nga mga karakter nga EOF nga kinahanglang isulat ingon nga unang mga karakter sa usa ka input line sa dili pa mogawas ang exit. Kung ang usa ka variable nga naglungtad apan walay numeric value, o walay bili, ang default nga bili mao ang 10. Kung wala kini, ang EOF nagpaila sa katapusan sa input ngadto sa kabhang.

INPUTRC

Ang filename alang sa startup file sa readline , nga gipatuman ang default sa ~ / .inputrc (tan-awa ang READLINE sa ubos).

LANG

Gigamit aron mahibal-an ang lokal nga kategoriya alang sa bisan unsang kategoriya nga dili piho nga napili sa usa ka variable nga sugod sa LC_ .

LC_ALL

Kining variable nga naglabaw sa bili sa LANG ug sa bisan unsang lain nga LC_ nga nag-ingon nga usa ka kategoriya sa lokal.

LC_COLLATE

Ang kini nga variable nga nagtino sa order sa collation nga gigamit sa pag-sunod sa mga resulta sa pagpalapad sa agianan sa dalan, ug pagtino sa kinaiya sa mga ekspresyon sa hanay, pagkapares sa mga klase, ug pagtakdo nga mga pagkasunod-sunod sulod sa pagpalapad sa agianan sa agianan ug pagparis sa sumbanan.

LC_CTYPE

Kining variable nga nagtino sa paghubad sa mga karakter ug sa kinaiya sa mga klase sa kinaiya sa sulod sa pagpalapad sa dalan sa dalan ug pagkopya sa sumbanan.

LC_MESSAGES

Ang kini nga variable nga nagtino sa lokal nga gigamit aron sa paghubad sa duha ka gikutlo nga mga kuldas nga gisundan sa usa ka $ .

LC_NUMERIC

Kining variable nga nagtino sa lokal nga kategoriya nga gigamit alang sa pag-format sa numero.

MGA LINA

Gigamit sa pinili nga command nga gitukod aron mahibal-an ang gitas-on nga kolum alang sa mga listahan sa pagpili sa pag-imprinta. Awtomatikong ibutang sa resibo sa SIGWINCH.

MAIL

Kon kini nga parameter gipahimutang sa usa ka file nga ngalan ug ang wala ma-kompirma nga MAILPATH wala ibutang, ang bash nagpahibalo sa user sa pag-abot sa mail sa gitakda nga file.

MAILCHECK

Nagtino kon unsa ka sagad (sa mga segundo) ang mga tseke alang sa mail. Ang default mao ang 60 segundos. Kon panahon na sa pagsusi alang sa mail, ang kabhang niini mahitabo sa dili pa ipasundayag ang pangunang aghat. Kon kini nga variable nga wala mahatag, o ibutang sa usa ka bili nga dili usa ka numero nga mas labaw kay sa o katumbas sa zero, ang balhibo nagpugong sa pagsusi sa mail.

MAILPATH

Usa ka listahan sa mga ngalan sa file nga gibulag sa colon aron susihon alang sa mail. Ang mensahe nga pag-imprinta kung ang mail nga moabut sa usa ka partikular nga file mahimong matino pinaagi sa pagbulag sa ngalan sa file gikan sa mensahe nga may `? '. Sa diha nga gigamit sa teksto sa mensahe, ang $ _ nagpalapad sa ngalan sa kasamtangan nga mailfile. Pananglitan:

MAILPATH = '/ var / mail / bfox? "Ikaw adunay mail": ~ / shell-mail? "$ _ Adunay mail!"'

Nagdala ang Bash og default nga bili alang niining variable, apan ang nahimutangan sa user nga mga mail file nga gigamit niini mao ang dependent sa sistema (pananglitan, / var / mail / $ USER ).

OPTERR

Kon nahimutang sa bili 1, ang bash nagpakita sa mga mensahe nga sayup nga namugna sa getopts builtin command (tan-awa ang SHELL BUILTIN COMMANDS sa ubos). Ang OPTERR gisugdan sa 1 sa matag higayon nga ang tawag sa kabhang o usa ka script sa panit gipatuman.

PATH

Ang dalan sa pagpangita alang sa mga sugo. Kini usa ka listahan sa mga directory nga gibulag sa kolon diin ang panit nagapangita sa mga sugo (tan-awa ang COMMAND EXECUTION sa ubos). Ang default nga agianan mao ang sistema nga nagsalig, ug gitakda sa administrator nga nag-instalar sa bash . Usa ka komon nga bili mao ang `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT

Kon kini nga variable anaa sa kinaiyahan sa dihang magsugod ang bash , ang shell mosulod sa posix mode sa dili pa basahon ang mga file sa pagsugod, ingon nga ang - opix invocation option gihatag. Kon kini gitakda samtang ang kabhang nagdagan, ang bash makahimo sa posix mode , ingon nga ang command set -o posix gipatuman.

PROMPT_COMMAND

Kon nahimutang, ang bili gipatuman ingon nga usa ka sugo sa wala pa mag-isyu sa matag nag-unang aghat.

PS1

Ang bili sa kini nga parametro gipalapdan (tan-awa ang PROMPTING sa ubos) ug gigamit ingon nga pangunang hulga sa pagsulat . Ang default nga bili mao ang `` \ s- \ v \ $ ''.

PS2

Ang bili sa kini nga parametro gipalapdan sama sa PS1 ug gigamit ingon nga ikaduha nga hugpong nga prompt. Ang default mao ang `` > ''.

PS3

Ang bili sa kini nga parameter gigamit ingon nga aghat sa pinili nga mando (tan-awa ang SHELL GRAMMAR sa ibabaw).

PS4

Ang bili sa kini nga parametro gipalapad sama sa PS1 ug ang bili giimprinta sa dili pa ang matag kombinasyon sa bash nga gipakita atol sa usa ka pagsubay sa pagsulay. Ang una nga kinaiya sa PS4 gipadagan daghang beses, kung gikinahanglan, aron ipaila ang daghang mga lebel sa indirection. Ang default mao ang `` + ''.

TIMEFORMAT

Ang bili sa kini nga parameter gigamit ingon nga usa ka format nga hugpong nga nagpunting kung giunsa nga ang impormasyon sa tibuuk nga panahon alang sa mga linya sa tubo nga prefix sa oras nga gigahin nga pulong kinahanglan ipakita. Ang % nga kinaiya nagpaila sa pagkasunod-sunod nga pagpalayo nga gipalapad ngadto sa usa ka oras nga bili o uban nga kasayuran. Ang mga sunod-sunod nga makalingkawas ug ang ilang mga kahulugan mao ang mosunod; ang mga timailhan nagpakita sa mga opsyonal nga bahin.

%%

Usa ka literal nga % .

% [ p ] [l] R

Ang milabay nga panahon sa mga segundo.

% [ p ] [l] U

Ang gidaghanon sa mga segundo sa CPU nga gigahin sa user mode.

% [ p ] [l] S

Ang gidaghanon sa mga segundo sa CPU nga gigahin sa system mode.

% P

Ang porsiyento sa CPU, nga gikompirmar nga (% U +% S) /% R.

Ang opsyonal nga p usa ka digit nga nagpunting sa katukma , ang gidaghanon sa mga numero nga fractional human sa decimal point. Ang usa ka bili sa 0 hinungdan nga walay desimal nga punto o tipik ang mahimong output. Sa kadaghanan sa tulo ka mga lugar human mahatag ang decimal nga punto; Ang mga bili sa p nga mas dako sa 3 mausab ngadto sa 3. Kung ang p wala matino, ang bili 3 gigamit.

Ang opsyonal l nagtino sa usa ka mas taas nga format, lakip ang mga minuto, sa porma nga MM m SS . FF s. Ang bili sa p motino kung gikinahanglan o wala ang tipik.

Kung wala kini gibutang nga variable, ang bash naglihok ingon nga kini adunay bili nga $ '\ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS' . Kung ang bili null, walay timing nga impormasyon nga gipakita. Ang usa ka trailing newline idugang kon ang format nga pisi gipakita.

TMOUT

Kung gibutang sa usa ka bili nga mas labaw pa kay sa zero, ang TMOUT giisip isip default timeout alang sa readin builtin. Ang gipili nga mando natapos kon ang input dili moabut human sa mga segundo sa TMOUT kung ang input moabut gikan sa terminal. Sa usa ka interactive shell, ang bili gihubad ingon nga gidaghanon sa mga segundo nga maghulat alang sa pag-input human mag-isyu sa nag-unang aghat. Gitapos si Bash human maghulat nianang gidaghanon sa mga segundo kon ang input dili moabot.

auto_resume

Kining variable nag kontrolar kung giunsa ang interbyu makig-istorya sa user ug kontrol sa trabaho. Kon kini nga variable nahimutang, ang usa ka pulong nga yano nga mga mando nga walay mga redirections gitagad isip mga kandidato alang sa pagpadayon sa usa ka nahabilin nga nahunong nga trabaho. Walay kalinaw nga gitugutan; kon adunay labaw pa kay sa usa ka trabaho nga nagsugod sa pagkudlit sa lambo, ang trabaho nga labing bag-o nga gi-access gipili. Ang ngalan sa usa ka nahunong nga trabaho, niini nga konteksto, mao ang linya sa command nga gigamit sa pagsugod niini. Kung gipahimutang sa bili ang eksakto , ang hugpong nga gitagana kinahanglan nga mohaum gayud sa ngalan sa usa ka nahunong nga trabaho gayud; kon nahimutang sa substring , ang hugpong nga gisudlan kinahanglan nga magtumbas sa usa ka substring sa ngalan sa usa ka nahunong nga trabaho. Ang bili sa substring naghatag og gamit nga sama sa %? job identifier (tan-awa ang JOB CONTROL sa ubos). Kon ibutang sa bisan unsa nga lain nga bili, ang gitagana nga hugpong kinahanglan nga usa ka prefix sa ngalan sa nahunong nga trabaho; kini naghatag og gamit nga susama sa % job identifier.

histchars

Ang duha o tulo ka mga karakter nga nagkontrolar sa pagpalapad sa kasaysayan ug pag-uswag (tan-awa ang EXPANSION SA KASAYSAYAN sa ubos). Ang unang kinaiya mao ang pagpalapad sa kinaiya sa kinaiya, ang kinaiya nga nagpaila sa sinugdanan sa pagpalapad sa kasaysayan, kasagaran ` ! '. Ang ikaduha nga kinaiya mao ang dali nga substitution nga kinaiya, nga gigamit ingon nga kakapoy sa pagpadayon sa daan nga pagsulod sa sugo, pag-ilis sa usa ka hugpong alang sa lain sa sugo. Ang default mao ang ` ^ '. Ang opsyonal nga ikatulo nga kinaiya mao ang kinaiya nga nagpakita nga ang nahibilin sa linya usa ka komentaryo sa dihang makita nga ang unang kinaiya sa usa ka pulong, kasagaran ` # '. Ang pagkomento sa kasaysayan nga karakter nagpahinabo sa pagpuli sa kasaysayan nga nalaktawan alang sa nahibiling mga pulong sa linya. Dili kini hinungdan nga ang parser sa panit magtratar sa nahabilin nga linya ingon nga usa ka komentaryo.

Arrays

Naghatag ang Bash og usa-ka-sukdanan nga mga kapilian sa hanay. Ang bisan unsang kabag-o mahimo nga gamiton ingon nga usa ka han-ay; ang ipahayag nga buildin klaro nga magpahayag sa usa ka laray. Walay kinatibuk-an nga limitasyon sa gidak-on sa usa ka laray, ni bisan unsang kinahanglanon nga ang mga miyembro ma-indeks o ibutang nga magkatakdo. Ang mga pag-index gi-index gamit ang mga integer ug zero-based.

Ang usa ka han-ay awtomatikong gimugna kung adunay usa ka variable nga gi-assign sa paggamit sa syntax name [ subscript ] = value . Ang subskripto giisip nga usa ka ekspresyon nga pang-aritmetika nga kinahanglan magtimbang-timbang ngadto sa usa ka numero nga mas labaw kay sa o katumbas sa zero. Aron ipahayag ang usa ka han-ay, gamit ang ipahayag-usa ka ngalan (tan-awa ang SHELL BUILTIN COMMANDS sa ubos). ipahayag-usa ka ngalan [ subskrip ] gidawat usab; ang subskripsyon wala panumbalinga. Ang mga kinaugalingon mahimong matino alang sa usa ka variable nga paggamit gamit ang mga deklarasyon ug mga readinly nga builtin. Ang matag hiyas magamit sa tanang sakop sa usa ka laray.

Ang mga arrays gi-assign sa paggamit sa compound nga mga assignment sa form name = ( value 1 ... value n ) , diin ang matag bili anaa sa porma [ subscript ] = string . Kinahanglan lamang ang hilo . Kon ang mga opsyonal nga mga braket ug subskrip gihatag, kana nga indeks gitudlo; kung dili ang index sa elemento nga gi-assign mao ang katapusang index nga gitudlo sa pahayag plus usa. Ang pag-indeks magsugod sa zero. Kini nga syntax gidawat usab sa gipahayag nga builtin. Ang indibidwal nga mga elemento sa array mahimong itudlo sa paggamit sa ngalan [ subscript ] = value syntax nga gipaila sa ibabaw.

Ang unset builtin gigamit aron sa pagguba sa mga arrays. Ang wala mahatag nga ngalan [ subskripsyon ] makaguba sa pang-elemento nga elemento sa index subscript . unset ngalan , diin ang ngalan usa ka han-ay, o wala ibutang nga ngalan [ subskrip ], diin ang subskrip * o @ , magwagtang sa tibuok nga han-ay.

Ang mga deklarasyon , mga lokal , ug mga readonly nga gitukod sa matag usa modawat sa usa ka- usa ka kapilian sa pagtino sa usa ka han-ay. Ang read readin nagdawat sa usa ka- usa ka kapilian sa pag-assign sa usa ka lista sa mga pulong nga gibasa gikan sa standard input ngadto sa usa ka array. Ang gitakda ug gipahayag nga mga builtin nagpakita sa nagkalain-laing mga hiyas sa usa ka paagi nga nagtugot kanila nga magamit pag-usab ingon nga mga buluhaton.

PANAHON

Ang pagpalapad gihimo sa command line human kini gibahin ngadto sa mga pulong. Adunay pito ka mga matang sa pagpalapad nga gihimo: pagsangkad sa pagpalapad , pagpalapad sa tilde , parameter ug kapilian nga pagpalapad , pagpuli sa sugo , pag-uswag sa aritmetika , pagputol sa pulong , ug pagpalapad sa dalan .

Ang han-ay sa pagpalapad mao ang: pagsangkad sa pagpalapad, pagpalapad sa tilde, parameter, variable ug aritmetika nga pagpalapad ug pagpuli sa sugo (gihimo sa wala-sa tuo nga paagi), pagbahin sa pulong, ug pagpalapnag sa dalan.

Sa mga sistema nga makasuporta niini, dunay dugang nga pagpalapad: proseso nga pagpuli .

Pag-uswag sa Brace

Ang pagpalapad sa tabang usa ka mekanismo diin ang mga linya sa arbitrasyon mahimong makuha. Kini nga mekanismo susama sa pagpalapad sa agianan sa dalan , apan ang mga filename nga gimugna dili kinahanglan. Ang mga sumbanan nga gipadako gipalapid magkuha sa porma sa usa ka opsyonal nga pasiuna , gisundan sa usa ka sunod-sunod nga mga linya nga gibulag sa mga comma gikan sa usa ka parisan nga mga brace, gisundan sa usa ka opsyonal nga mga sinulat . Ang pasiuna pasiuna sa matag hugpong nga anaa sa sulod sa mga kuptanan, ug ang mga porma dayon gibutang sa matag hulmahan, nga nagpalapad sa wala ngadto sa tuo.

Ang mga pagpalapad sa salakayan mahimong gisudlan. Ang mga sangputanan sa matag gipalapad nga lambo dili lainlaing matang; Ang nahabilin sa husto nga pagkahan-ay napreserbar. Pananglitan, ang usa ka { d, c, b } e nagpalapad ngadto sa `ade ace abe '.

Ang pagpalapad sa tabang gipahigayon sa dili pa ang bisan unsang mga pagpalapad, ug ang bisan unsang mga karakter nga espesyal ngadto sa ubang mga expansion gipreserbar sa resulta. Kini hugot nga teksto. Ang Bash wala magamit ang bisan unsa nga syntactic interpretation sa konteksto sa pagpalapad o ang teksto sa taliwala sa mga kuptanan.

Kini nga pagtukod sa kasagaran gigamit ingon nga takus sa panahon nga ang komon nga prefix sa mga hilo nga nahimo mas taas kay sa sa ibabaw nga pananglitan:

mkdir / usr / local / src / bash / {daan, bag-ong, dist, bugs}

o

chown nga ugat /usr/{ucb/{ex.3edit},lib/{ex?.?*,how_ex}}

Ang pag-uswag sa pagdala nagpaila sa gamay nga pagkahiuyon sa mga bersyon sa kasaysayan sa sh . Ang sh wala magtagad sa pag-abli o pagsira sa mga brace ilabi na kon kini makita isip bahin sa usa ka pulong, ug mapreserbar kini sa output. Gikuha ni Bash ang mga brace gikan sa mga pulong ingon nga sangputanan sa pagpalapad. Pananglitan, ang usa ka pulong nga gisulod sa sh sama sa file {1,2} makita nga parehas sa output. Ang samang pulong gipadala ingon file1 file2 human sa pagpalapad pinaagi sa bash . Kung hugot nga pagkomparar sa sh ang gitinguha, sugdi ang bash sa B + nga opsyon o ayaw pagpalapad ang pagpalapad uban ang opsiyon sa B sa set command (tan-awa ang SHELL BUILTIN COMMANDS sa ubos).

Pagpalapad sa Tilde

Kung ang usa ka pulong nagsugod sa usa ka wala mahulagway nga tilde nga karakter (` ~ '), ang tanan nga mga karakter nga nag-una sa una nga wala mahisguti nga slash (o ang tanan nga mga karakter, kon walay walay marka nga slash) giisip nga usa ka tilde-prefix . Kung walay usa sa mga karakter sa tilde-prefix nga gikutlo, ang mga karakter sa tilde-prefix nga nagsunod sa tilde giisip nga posible nga login name . Kon kini nga ngalan sa pag-login mao ang null string, ang tilde mapulihan sa bili sa shell parameter HOME . Kung ang HOME wala mahitabo, ang home directory sa user nga nagpatuman sa kabhang giusab hinoon. Kay kon dili, ang tilde-prefix mapulihan sa direktoryo sa panimalay nga may kalabutan sa tinud-an nga ngalan sa pag-login.

Kon ang tilde-prefix usa ka `~ + ', ang bili sa kabhang sa variable PWD mopuli sa tilde-prefix. Kung ang tilde-prefix usa ka `~ - ', ang bili sa variable nga shell nga OLDPWD , kon kini gitakda, giilis. Kung ang mga karakter nga nagsunod sa tilde sa tilde-prefix naglangkob sa usa ka numero nga N , nga gipili nga prefixed sa `+ 'o` -', ang tilde-prefix mapulihan uban ang katugbang nga elemento gikan sa directory stack, ingon nga kini gipakita pinaagi sa dirs builtin misangput sa tilde-prefix isip argumento. Kung ang mga karakter nga nagsunod sa tilde sa tilde-prefix naglangkob sa usa ka numero nga walay nagapanguna nga `+ 'o` -', `+ 'gituohan.

Kon ang ngalan sa login dili balido, o ang pag-uswag sa tilde mapakyas, ang pulong dili mausab.

Ang tagsa-tagsa nga assignment ang gitan-aw alang sa dili-na-lista nga tilde-prefix dayon sa usa ka : o = . Sa niini nga mga kaso, ang pagpalapad sa tilde gihimo usab. Tungod niini, mahimo gamiton sa usa ang mga ngalan sa mga file gamit ang mga tilde sa mga assignment sa PATH , MAILPATH , ug CDPATH , ug ang kabhang nagtakda sa gipalapad nga bili.

Pagpalapad sa Parameter

Ang ` $ 'nga kinaiya nagpaila sa pagpalapad sa mga parameter, pag-ilis sa sugo, o pagpalapad sa aritmetika. Ang porma nga ngalan o simbolo nga gipalapdan mahimo nga gilibotan sa mga brace, nga mga opsyonal apan nagsilbi aron mapanalipdan ang variable nga gipalapdan gikan sa mga karakter nga nagsunod dayon niini nga mahimong hubaron isip kabahin sa ngalan.

Sa diha nga ang mga brace gigamit, ang pagparis nga katapusan nga brace mao ang unang ` } 'nga dili makaikyas sa usa ka backslash o sulod sa usa ka gikutlo nga hikot, ug dili sulod sa gipalapdan nga pagpalapad sa aritmetika, pagpuli sa utlanan, o pagpalapad sa paramter.

Ang bili sa parameter gipuli. Ang mga kuptanan gikinahanglan kung ang parameter usa ka positional parameter nga may labaw pa sa usa ka digit, o kung ang parameter gisundan sa usa ka kinaiya nga dili ipasabut isip kabahin sa ngalan niini.

Sa matag usa sa mga kaso sa ubos, ang pulong gipailalom sa pagpalapad sa tilde, pagpalapad sa mga parameter, pagpuli sa sugo, ug pagpalapad sa aritmetika. Sa diha nga wala magpahigayon sa pagpalapad sa substring, pagsulay sa mga pagsulay alang sa usa ka parameter nga wala gibutang o null; wala ang mga resulta sa kolon sa usa ka pagsulay lamang alang sa usa ka parameter nga wala mausab.

Gamita ang Default nga mga Bililhon . Kung ang parameter dili gibutang o null, ang pagpalapad sa pulong gipulihan. Kay kon dili, ang bili sa parameter gipuli.

Maghatag ug Default Values . Kung ang parameter dili gibutang o null, ang pagpalapad sa pulong gi-assign sa parameter . Ang bili sa parameter pag -ilis. Ang posisyonal nga mga parametro ug mga espesyal nga mga sukdanan dili mahimong itudlo sa niini nga paagi.

Ipakita ang Kasaypanan kon Dili Nuli o Unset . Kung ang parameter dili kompleto o wala ibutang, ang pagpalapad sa pulong (o usa ka mensahe nga ingon niana nga pulong kon wala ang pulong ) gisulat ngadto sa standard error ug sa kabhang, kung dili kini interactive, mogawas. Kay kon dili, ang bili sa parameter gipuli.

Paggamit og Kapuli nga Bili . Kung ang parameter dili hingpit o wala matuman, wala'y kapuli, kung dili ang pagpalapad sa pulong gipuli.

Nagapalapad sa mga ngalan sa mga kapilian nga ang mga ngalan nagsugod sa prefix , gibulag sa unang kinaiya sa IFS special variable.

Ang gitas-on sa mga karakter sa bili sa parameter gibalhin. Kung ang parameter mao ang * o @ , ang bili nga gipuli mao ang gidaghanon sa positional nga parameter. Kung ang parameter mao ang usa ka ngalan sa dagway nga gisulat sa * o @ , ang bili nga gipuli mao ang gidaghanon sa mga elemento sa array.

Ang pulong gipalapad aron makahatag og usa ka sumbanan sama sa pagpalapad sa dalan. Kung ang sumbanan magtugma sa sinugdanan sa bili sa parameter , nan ang resulta sa pagpalapad mao ang gipalapad nga bili sa parameter nga adunay labing mubo nga sumbanan nga sumbanan (ang `` # '' nga kaso) o ang pinakataas nga sumbanan sa pagparis (ang `` # # ' 'nga kaso) natapos. Kung ang parameter mao ang @ o * , ang pagpadagan sa pag-usab sa pattern gipadapat sa matag posisyong parameter sa baylo, ug ang pagpalapad mao ang resulta nga listahan. Kung ang parameter mao ang usa ka variable nga gidaghanon nga gipatala sa @ o * , ang pagpaandar sa pag-usab sa pattern gipadapat sa matag usa nga sakop sa linangkit, ug ang pagpalapad mao ang resulta nga listahan.

Ang pulong gipalapad aron makahatag og usa ka sumbanan sama sa pagpalapad sa dalan. Kon ang sumbanan maoy katumbas sa tibuuk nga bahin sa gipalapad nga bili sa parameter , nan ang resulta sa pagpalapad mao ang gipalapad nga bili sa parameter sa labing mubo nga pagparis nga sumbanan (ang `` % '' nga kaso) o ang pinakataas nga sumbanan sa pagparis (ang `` % % '' nga kaso) natapos. Kung ang parameter mao ang @ o * , ang pagpadagan sa pag-usab sa pattern gipadapat sa matag posisyong parameter sa baylo, ug ang pagpalapad mao ang resulta nga listahan. Kung ang parameter mao ang usa ka variable nga gidaghanon nga gipatala sa @ o * , ang pagpaandar sa pag-usab sa pattern gipadapat sa matag usa nga sakop sa linangkit, ug ang pagpalapad mao ang resulta nga listahan.

Ang sumbanan gipalapad aron makahimo og sumbanan sama sa pagpalapad sa dalan. Ang parametro gipalapdan ug ang pinakataas nga dula sa sumbanan batok sa bili niini gipulihan sa hilo . Sa unang porma, ang unang duwa lamang ang gipulihan. Ang ikaduha nga porma maoy hinungdan sa tanan nga mga posporo sa sumbanan nga mapulihan sa hilo . Kung ang sumbanan nagsugod sa # , kini kinahanglan nga magkatugma sa sinugdanan sa gipalapdan nga bili sa parameter . Kung ang sumbanan nagsugod sa % , kini kinahanglan nga magkatugma sa katapusan sa gipalapad nga bili sa parameter . Kung ang hilo null, ang mga pagkapareha sa sumbanan gihunong ug ang mga sundanan nga dili mosunod. Kung ang parameter mao ang @ o * , ang pagpauli nga operasyon gipadapat sa matag posisyong parameter sa baylo, ug ang pagpalapad mao ang resulta nga listahan. Kung ang parameter mao ang usa ka variable nga gidaghanon nga gipatala sa @ o * , ang pagpauli nga operasyon gipadapat sa matag usa nga sakop sa linangkit, ug ang pagpalapad mao ang resulta nga lista.

Pagsumiter sa Pagpailalom

Ang pagpuli sa katuyuan nagtugot sa output sa usa ka sugo sa pag-ilis sa command name. Adunay duha ka porma:

$ ( sugo )

o

` sugo`

Gihimo ni Bash ang pagpalapad pinaagi sa pagpatuman sa sugo ug pag-ilis sa command substitution sa standard nga output sa command, uban ang bisan unsang trailing nga mga bag-ong linya nga natanggal. Ang mga gitala nga bag-ong mga linya wala makuha, apan kini mahimo nga makuha sa panahon sa pagbahin sa pulong. Ang command substitution $ (cat file ) mahimong mapulihan sa katumbas apan mas paspas $ (< file ).

Sa diha nga gigamit ang daan nga estilo nga backquote nga porma sa pagpuli, ang backslash nagpabilin sa literal nga kahulogan gawas kung gisundan sa $ , ` , o \ . Ang unang backquote nga wala nag-una sa usa ka backslash nagtapos sa pagpuli sa sugo. Sa dihang gamiton ang porma nga $ ( command ), ang tanan nga mga karakter tali sa mga parentheses naglangkob sa sugo; walay usa nga gitagad ilabi na.

Ang mga kapuli nga mando mahimong gisudlan. Aron magamit ang gamiton nga balikbalik nga porma, makalingkawas sa sulod nga mga backquotes sa mga backslashes.

Kon ang pagpuli makita sa sulod nga doble nga mga kinutlo, ang pagputol sa pulong ug pagpalapad sa agianan sa dalan wala ipahigayon sa mga resulta.

Pagpalapad sa Aritmetika

Ang pagpalapad sa aritmetika nagtugot sa pag-usisa sa usa ka pagpahayag sa aritmetika ug ang pagpuli sa resulta. Ang pormat alang sa pagpalapad sa aritmetika mao ang:

$ (( ekspresyon ))

Ang ekspresyon gitagad ingon nga kini anaa sulod sa doble nga mga kinutlo, apan ang doble nga kinutlo sa sulod sa mga parentheses wala gitagad. Ang tanan nga mga token sa pamulong napailalom sa pag-uswag sa parameter, pagpalapad sa higut, pagpuli sa sugo, ug pagkutlo sa pagkutlo. Ang pag-ilis sa aritmetika mahimong gisudlan.

Ang pagtimbang gihimo pinaagi sa mga lagda nga gilista sa ubos ubos sa ARITHMETIC EVALUATION . Kung ang pamahayag dili balido, ang bash nagpatik sa usa ka mensahe nga nagpakita sa kapakyasan ug walay pagpuli nga mahitabo.

Proseso nga Pagpuli

Ang proseso sa pagpuli gipaluyohan sa mga sistema nga nagsuportar nga ginganlan og mga tubo ( FIFOs ) o ang / dev / fd nga pamaagi sa pagbayad sa pagbukas sa mga file. Kini nagkinahanglan sa porma sa <( list ) o > ( list ) . Ang listahan sa proseso gipadagan nga adunay input o output nga konektado sa usa ka FIFO o sa pipila ka file sa / dev / fd . Ang ngalan sa kini nga file gipasa ingon nga usa ka argumento sa kasamtangan nga sugo ingon nga resulta sa pagpalapad. Kung gigamit ang porma sa ( list ) , ang pagsulat sa file maghatag og input alang sa lista . Kon ang porma sa (< list ) gigamit, ang file nga gipasa ingon nga usa ka argumento kinahanglan basahon aron makuha ang output sa listahan .

Sa diha nga magamit, ang proses substitution ipahigayon dungan sa mga parameter ug kapilian nga pagpalapad, pagpuli sa sugo, ug pagpalapad sa aritmetika.

Ang pagbahin sa Pulong

Ang kabhang nagsusi sa mga resulta sa pag-uswag sa parameter, pag-ilis sa sugo, ug pagpalapad sa aritmetika nga wala mahitabo sulod sa doble nga mga kinutlo alang sa pagbahin sa pulong .

Ang kabhang nagtratar sa matag kinaiya sa IFS ingon nga delimiter, ug gibahin ang mga resulta sa uban pang mga ekspansyon ngadto sa mga pulong niini nga mga karakter. Kon ang IFS wala mahatag, o ang bili niini mao ang tukmang , ang default, dayon ang bisan unsang pagkasunod-sunod sa mga karakter sa IFS nagsilbi aron mabasura ang mga pulong. Kon ang IFS adunay usa ka bili nga lain gawas sa default, ang mga han-ay sa mga whitespace nga mga letra ug tab ang wala panumbalinga sa sinugdan ug katapusan sa pulong, basta ang whitespace nga karakter anaa sa bili sa IFS (usa ka IFS whitespace character). Ang bisan unsa nga kinaiya sa IFS nga dili IFS whitespace, uban sa bisan unsang kasikbit nga mga karakter sa whitespace sa IFS , naglimit sa usa ka uma. Ang pagkasunod-sunod sa mga karakter sa whitespace sa IFS giisip usab nga delimiter. Kung ang bili sa IFS mao ang null, walay pulong nga mahitabo.

Ang tin-aw nga null argumento ( "" o '' ) gipabilin. Ang wala mahinganli nga mga argumento sa null, nga resulta sa pagpalapad sa mga parameter nga walay mga bili, gikuha. Kung ang usa ka parameter nga walay bili ang gipalapad sulod sa doble nga mga kinutlo, usa ka resulta sa null argumento ug gipabilin.

Timan-i nga kon walay pagpalapad nga mahitabo, walay pagkabahin ang gihimo.

Pagpalapad sa Ngalan

Human sa pagbahin sa pulong, gawas kung ang gipili nga -f , ang pag-scan sa matag pulong alang sa mga karakter * ,? , ug [ . Kon ang usa niini nga mga karakter makita, nan ang pulong giisip ingon nga usa ka sumbanan , ug gipulihan sa usa ka lista sa sunod-sunod nga lista sa mga ngalan sa file nga nagtumbok sa sumbanan. Kung walay nakitang mga ngalan sa katugbang nga file, ug ang kapilian nga kapilian nga nullglob gibabagan, ang pulong wala mabag-o. Kon ang opsyon sa nullglob gipahimutang, ug walay mga kaparis nga makaplagan, ang pulong gikuha. Kung ang opsyon sa kabhang nocaseglob mapahigayon, ang dula ipahigayon nga walay pagtagad sa kaso sa mga karakter sa alpabeto. Kon ang usa ka sumbanan gigamit alang sa pagpalapad sa agianan sa kadalanan, ang karakter nga ``. '' Sa sinugdanan sa usa ka ngalan o diha-diha dayon nagsunod sa usa ka slash kinahanglan nga ipaangay nga tin-aw, gawas kon ang kapilian nga kapilian nga dotglob gipahimutang. Sa diha nga ang pagparis sa usa ka pathname, ang slash nga kinaiya kinahanglan nga kanunay nga matupngan nga tin-aw. Sa ubang mga kaso, ang ``. '' Nga kinaiya wala gitagad. Tan-awa ang kahubitan sa shopt sa ilalum ubos sa SHELL BUILTIN COMMANDS alang sa usa ka paghulagway sa nocaseglob , nullglob , ug dotglob shell kapilian.

Ang variable sa kabhang sa GLOBIGNORE mahimong gamiton aron mapugngan ang mga set sa mga ngalan sa file nga magtumbas sa sumbanan . Kon ang GLOBIGNORE nahimutang, ang matag matching file name nga susama sa usa sa mga sumbanan sa GLOBIGNORE makuha gikan sa lista sa mga posporo. Ang mga ngalan nga `` ``. '' Ug `` .. .. '' kanunay nga gibaliwala, bisan pa ang GLOBIGNORE natakda. Apan, ang paghimo sa GLOBIGNORE adunay epekto sa pagpugong sa opsyon sa dotglob shell, busa ang tanang ubang mga ngalan sa file nagsugod sa "` . Aron makuha ang karaan nga kinaiya sa pagbaliwala sa mga ngalan sa file sugod sa usa ka ``. '' , Himoa ang ``. * '' Usa sa mga sumbanan sa GLOBIGNORE . Ang opsyon sa dotglob gibabagan sa dihang ang GLOBIGNORE wala mausab.

Pagkapareha sa Pattern

Ang bisan unsang kinaiya nga makita sa usa ka sumbanan, gawas sa espesyal nga sumbanan nga mga karakter nga gihulagway sa ubos, mitakdo sa iyang kaugalingon. Ang NUL nga karakter mahimo nga dili mahitabo sa usa ka sumbanan. Ang pinasahi nga sumbanan nga mga karakter kinahanglan nga gikutlo kung kini kinahanglan nga matumbasan sa literal.

Ang espesyal nga sumbanan nga mga karakter adunay mosunod nga mga kahulogan:

*

Nagpasibo sa bisan unsang tali, lakip ang null nga hilo.

?

Nagpasibo sa bisan unsang karakter.

[...]

Makapamatud-an ang bisan usa sa nasulod nga mga karakter. Ang usa ka parisan sa mga karakter nga gibulag sa usa ka hyphen nagpasabot sa usa ka lainlaing ekspresyon ; Ang bisan unsang kinaiya nga sama sa duha ka mga karakter, lakip na, gamit ang han-ay nga han-ay sa han-ay sa lokal nga lugar ug ang hugpong sa karakter, nahitugma. Kung ang unang karakter nga nagsunod sa [ usa ka ! o usa ^ nan ang bisan unsa nga kinaiya nga dili gisal-ot nahitugma. Ang sunod-sunod nga pagkahan-ay sa mga karakter sa mga ekspresyon sa gitas-on gitino sa kasamtangan nga lugar ug ang bili sa LC_COLLATE shell variable, kon itakda. A - mahimong matupngan pinaagi sa paglakip niini ingon nga una o katapusang kinaiya sa set. A ] mahimong maangay pinaagi sa paglakip niini ingon nga unang kinaiya sa set.

Sulod sa [ ug ] , ang mga klase sa kinaiya mahimong matino pinaagi sa syntax [: class :] , diin ang klase usa sa mosunod nga mga klase nga gihubit sa POSIX.2 standard:

alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
Ang usa ka kinaiya nga klase motakdo sa bisan unsang kinaiya nga iya sa maong klase. Ang pulong nga karakter nga klase nagtumbok sa mga letra, numero, ug kinaiya _.

Sulod sa [ ug ] , usa ka klase sa pagparis mahimong matino gamit ang syntax [= c =] , nga nahiuyon sa tanang mga karakter nga adunay sama nga gibug-aton nga gibug-aton (sumala sa gipasabut sa kasamtangan nga lugar) ingon nga karakter c .

Sa sulod [ ug ] , ang syntax [. simbolo .] nahiuyon sa simbolong simbolo sa pag-collate.

Kon ang opsyon sa extglob shell makahimo sa paggamit sa shopt builtin, daghang gipaangay nga pagparis nga mga operator ang giila. Sa mosunod nga paghulagway, usa ka lista sa pattern mao ang usa ka listahan sa usa o labaw pa nga mga sumbanan nga gibulag sa usa ka . Ang mga sumbanan sa komposit mahimo nga magamit pinaagi sa usa o labaw pa sa mosunod nga mga sub-pattern:

? ( sumbanan )

Nahimo ang zero o usa ka panghitabo sa gihatag nga mga sumbanan

* ( pattern-list )

Ang mga katumbas sa zero o labaw pa nga mga panghitabo sa gihatag nga mga sumbanan

+ ( sumbanan-lista )

Magkauyon sa usa o labaw pa nga mga panghitabo sa gihatag nga mga sumbanan

@ ( pattern-list )

Nagpasibo gayud sa usa sa gihatag nga mga sumbanan

! ( pattern-list )

Magkauyon sa usa ka butang gawas sa usa sa gihatag nga mga sumbanan

Pagtangtang sa Quote

Human sa nag-unang pagpalapad, ang tanan nga wala mahulagway nga mga panghitabo sa mga karakter nga \ , ' , ug " nga wala mag resulta sa usa sa mga ekspansyon sa ibabaw gikuha.

PAGPABILIN

Sa wala pa ipatuman ang usa ka sugo, ang input ug output niini mahimong i-redirect gamit ang usa ka espesyal nga notasyon nga gihubad sa kabhang. Ang redirection mahimo usab nga gamiton sa pag-abli ug pagsarado sa mga file alang sa kasamtangan nga pagpalupad sa kalasangan. Ang mosunod nga mga operators sa redirection mahimong mag-una o magpakita bisan asa sa usa ka yano nga sugo o mahimong mosunod sa usa ka sugo . Ang mga redirect giproseso sa han-ay nga kini makita, gikan sa wala ngadto sa tuo.

Sa mosunod nga mga paghubit, kung ang numero sa file descriptor wala ilakip, ug ang unang karakter sa redirection operator mao ang < , ang redirection nagpasabot sa standard input (file descriptor 0). Kung ang unang karakter sa redirection operator > , ang redirection nagpasabot sa standard output (file descriptor 1).

Ang pulong nga nagsunod sa redirection operator sa mosunod nga mga paghubit, gawas sa laing gipahayag, gipailalom sa pagpalapad, pagpalapad sa tilde, pagpalapad sa mga parameter, pagpuli sa sugo, pagpalapad sa aritmetika, pagtangtang sa pagkutlo, pagpalapad sa agianan sa dalan, ug pagbahin sa pulong. Kon kini mopalapad ngadto sa labaw pa kay sa usa ka pulong, ang bash nagreport sa sayup.

Timan-i nga ang han-ay sa redirections mahinungdanon. Pananglitan, ang sugo

ls > dirlist 2 > & 1

nagdumala sa standard output ug standard error sa file dirlist , samtang ang command

ls 2 > & 1 > gipangulohan

nagdumala lamang sa standard nga output sa file dirlist , tungod kay ang standard nga sayup gi-duplicate isip standard nga output sa wala pa ang standard output gibalhin ngadto sa dirlist .

Ang Bash adunay ginagmay nga mga ngalan sa pila ka mga ngalan ilabina kon kini gigamit sa redirections, ingon nga gihulagway sa mosunod nga lamesa:

/ dev / fd / fd

Kung ang fd usa ka balido nga integer, ang file descriptor fd doble.

/ dev / stdin

Gikuha ang gikuha nga descriptor 0.

/ dev / stdout

Gikuha ang file descriptor 1.

/ dev / stderr

Gikuha ang file descriptor 2.

/ dev / tcp / host / port

Kon ang host usa ka balido nga hostname o address sa Internet, ug ang port usa ka integer nga numero sa port o pangalan sa serbisyo, ang mga paningkamot sa pag-abli sa koneksyon sa TCP sa katugbang nga socket.

/ dev / udp / host / port

Kon ang host usa ka balido nga hostname o address sa Internet, ug ang port usa ka numero sa integer port o pangalan sa serbisyo, ang mga paningkamot sa pag-abli sa koneksyon sa UDP sa tukmang socket.

Ang usa ka kapakyasan sa pag-abli o pagmugna og usa ka file hinungdan nga mapakyas ang redirection.

Pag-redirect sa Input

Ang pag-redirect sa input maoy hinungdan sa file nga ang ngalan naggikan sa pagpalapad sa pulong nga pagabuksan alang sa pagbasa sa file descriptor n , o sa standard input (file descriptor 0) kon n wala tino.

Ang kasagaran nga format alang sa pag-redirect sa input mao ang:

[ n ] < pulong

Pag-redirect sa Output

Ang pag-redirect sa output nagpahinabo sa file kansang ngalan naggikan sa pagpalapad sa pulong nga pagabuksan alang sa pagsulat sa file descriptor n , o ang standard output (file descriptor 1) kon n wala tino. Kung wala ang file kini gibuhat; kon kini anaa kini giputol ngadto sa zero nga gidak-on.

Ang kasagaran nga format alang sa pag-redirect sa output mao ang:

[ n ] > nga pulong

Kon ang redirection operator > , ug ang opsyon sa noclobber sa set builtin nakahimo, ang redirection mapakyas kon ang file nga ang ngalan nga resulta gikan sa pagpalapad sa pulong anaa ug usa ka regular nga file. Kung ang redirection operator >> , o ang redirection operator > ug ang opsyon sa noclobber sa gitakda nga command sa setin wala mahimo, ang pag-redirection gisulayan bisan kung ang file nga ginganlan pinaagi sa pulong anaa.

Pagpadako sa Gi-redirected Output

Ang pag-redirect sa output sa niini nga paagi hinungdan sa file nga ang ngalan naggikan sa pagpalapad sa pulong nga bukas alang sa pagdugang sa file descriptor n , o ang standard output (file descriptor 1) kon n wala tino. Kung wala ang file kini gimugna.

Ang kasagaran nga format alang sa pagdugang sa output mao ang:

[ n ] >> pulong

Pag-redirect sa Standard Output ug Standard Error

Gitugot sa Bash ang standard output (file descriptor 1) ug ang standard error output (file descriptor 2) nga ibalhin ngadto sa file kansang ngalan mao ang pagpalapad sa pulong uban niini nga pagtukod.

Adunay duha ka mga pormat sa pag-redirect sa standard output ug standard error:

ug> pulong

ug

> ug pulong

Sa duha ka porma, gipili ang una. Kini katumbas sa

> pulong 2 > & 1

Dinhi Mga Dokumento

Kini nga matang sa redirection nagtudlo sa kabhang sa pagbasa sa input gikan sa kasamtangan nga tinubdan hangtud nga ang usa ka linya nga adunay pulong nga walay pulong (nga walay mga sulud nga mga blangko) ang makita. Ang tanan nga mga linya nga gibasa hangtud niana nga punto dayon gigamit ingon nga standard nga input alang sa usa ka sugo.

Ang format sa mga dokumento dinhi:

<< [] nga pulong dinhi-dokumento delimiter

Walay pagpalapad sa mga parameter, pagpuli sa sugo, pagpalapad sa aritmetika, o pagpalapad sa dalan nga gipahigayon sa pulong . Kon adunay bisan unsa nga mga karakter sa pulong nga gikutlo, ang delimiter mao ang resulta sa pagtangtang sa pagkutlo sa pulong , ug ang mga linya sa dokumento dinhi wala mapalapad. Kon ang pulong wala mahisguti, ang tanan nga mga linya sa dokumento dinhi gipailalom sa pagpalapad sa mga parameter, pag-ilis sa sugo, ug pagpalapad sa aritmetika. Sa ulahing kaso, ang pagkasunod-sunod sa character \ wala panumbalinga, ug \ kinahanglan nga gamiton sa pagkutlo sa mga karakter nga \ , $ , ug ` .

Kon ang redirection operator << - , unya ang tanan nga mga nag-unang tab nga mga karakter gibalhin gikan sa mga linya sa input ug sa linya nga adunay delimiter . Kini nagtugot dinhi-mga dokumento sa sulod sa mga script sa panit nga paga-indented sa natural nga paagi.

Dinhi nga Mga Sungid

Usa ka lain nga mga dokumento dinhi, ang format mao ang:

<<< nga pulong

Ang pulong gipalapdan ug gisuplay sa sugo sa iyang standard nga input.

Pag-duplicate sa Mga Descriptor sa File

Ang redirection operator

[ n ] <& pulong

gigamit sa pag-duplicate nga input file descriptors. Kon ang pulong magpalapad ngadto sa usa o labaw pa nga mga digit, ang descriptor sa file nga gitala sa n gihimo nga usa ka kopya sa file descriptor. Kon ang mga digit sa pulong wala mag-ingon sa usa ka file descriptor nga bukas alang sa input, usa ka redirection error mahitabo. Kon ang pulong magsusi sa - , ang file descriptor n gisirado. Kung ang n wala matino, ang standard input (file descriptor 0) gigamit.

Ang operator

[ n ] > & pulong

gigamit susama sa duplicate output descriptors file. Kung ang n wala matino, ang standard output (file descriptor 1) gigamit. Kon ang mga numero sa pulong wala mag-ingon sa usa ka file descriptor nga bukas alang sa output, adunay usa ka error sa redirection nga mahitabo. Ingon nga usa ka espesyal nga kaso, kung n wala ilakip, ug ang pulong dili molapad ngadto sa usa o labaw pa nga mga numero, ang standard nga output ug standard nga sayup gi-redirected sama sa gihulagway nga kaniadto.

Pagbalhin sa Mga Deskriptor sa File

Ang redirection operator

[ n ] <& digit -

nagapalihok sa file descriptor digit aron sa pag-file descriptor n , o sa standard input (file descriptor 0) kon n wala tino. Ang digit gisirad-an human sa pagkopya sa n .

Susama, ang redirection operator

[ n ] > & digit -

nagapalihok sa file descriptor digit aron sa pag-file descriptor n , o ang standard output (file descriptor 1) kung n dili tino.

Pag-abli sa Deskriptor sa File alang sa Pagbasa ug Pagsulat

Ang redirection operator

[ n ] <> pulong

ang hinungdan sa file kansang ngalan mao ang pagpalapad sa pulong nga pagabuksan alang sa pagbasa ug pagsulat sa file descriptor n , o sa file descriptor 0 kung n wala tino. Kung wala ang file, kini gibuhat.

MGA ALIAS

Ang mga aliases nagtugot sa usa ka hilo nga ipuli sa usa ka pulong kung kini gamiton ingon nga unang pulong sa usa ka yano nga sugo. Ang bangko adunay usa ka lista sa mga alias nga mahimo nga ibutang ug dili ibutang sa mga alyas ug mga gitukod nga mga sugo (tan-awa ang SHELL BUILTIN COMMANDS sa ubos). Ang una nga pulong sa matag sugo, kon wala gikutlo, gisusi aron tan-awon kung kini adunay alyas. Kon mao, ang maong pulong gipulihan sa teksto sa alyas. Ang ngalan sa alias ug ang kapuli nga teksto mahimong adunay bisan unsang balido nga input sa pakli , lakip ang mga metakaracters nga gilista sa ibabaw, gawas sa ngalan sa alyas nga dili maglangkob. Ang unang pulong sa kapuli nga teksto gisulayan alang sa mga alias, apan ang usa ka pulong nga susama sa usa ka alias nga gipalapad wala gipalapad sa ikaduha nga higayon. Kini nagpasabot nga ang usa mahimo nga alias ls ngadto sa ls -F , pananglitan, ug ang bash dili mosulay sa rekursibong pagpalapad sa kapuling teksto. Kung ang katapusan nga kinaiya sa alias nga bili usa ka blangko , dayon ang sunod nga command word nga nagsunod sa alyas gisusi usab alang sa alias expansion.

Ang mga aliases gimugna ug gilista sa alias nga komand, ug gikuha uban sa unalias nga sugo.

Walay mekanismo sa paggamit sa mga argumento sa kapalit nga teksto. Kung gikinahanglan ang mga argumento, usa ka function sa kabhang kinahanglan gamiton (tan-awa ang mga FUNCTIONS sa ubos).

Ang mga aliases dili gipalapad kung ang shell dili interaktibo, gawas kon ang expand_aliases shell option gipahimutang gamit ang shopt (tan-awa ang paghulagway sa shopt ubos sa SHELL BUILTIN COMMANDS sa ubos).

Ang mga kalagdaan mahitungod sa kahulogan ug paggamit sa mga alyas ingon og makalibog. Si Bash kanunay nga nagabasa sa dili mokubos sa usa ka kompleto nga linya sa pag-input sa dili pa ipatuman ang bisan unsa sa mga sugo sa linya. Ang mga aliases gipalapdan sa diha nga ang usa ka sugo mabasa, dili kung kini ipatuman. Busa, ang kahulogan sa alias nga makita sa samang linya ingon nga laing sugo dili magamit hangtud mabasa ang sunod nga linya sa input. Ang mga sugo nga nagsunod sa kahulugan sa alias sa linya nga wala maapektuhan sa bag-ong alyas. Kini nga kinaiya usa usab nga isyu kung ang mga gimbuhaton gipatuman. Ang mga aliases gipalapdan sa diha nga ang usa ka kahulogan sa function gibasa, dili sa dihang ang function gipatuman, tungod kay ang usa ka kahulogan sa function usa ka compound nga sugo. Ingon usa ka sangputanan, ang mga alyas nga gihulagway sa usa ka function dili magamit hangtud human nga ang pagpatuman gipatuman. Aron mahimong luwas, kanunay ibutang ang mga paghubit sa alias sa usa ka linain nga linya, ug ayaw paggamit sa alias sa compound commands.

Alang sa hapit tanan nga katuyoan, ang mga alyas gipulihan sa mga function sa kabhang.

Mga katuyoan

Ang usa ka function sa kabhang, nga gihulagway nga gihulagway sa ibabaw ubos sa SHELL GRAMMAR , nagtipig og sunod-sunod nga mga sugo alang sa pagpatuman sa ulahi. Sa diha nga ang ngalan sa usa ka function sa kabhang gigamit ingon nga usa ka yano nga ngalan sa komand, ang lista sa mga sugo nga may kalabutan sa ngalan sa function gipatuman. Ang mga pagpatuman gipatuman sa konteksto sa kasamtangan nga kabhang; wala'y bag-ong proseso nga gihimo aron sa paghubad niini (itandi kini sa pagpatuman sa usa ka script). Sa diha nga ang usa ka function gipatuman, ang mga argumento sa function nahimong positional parameters sa panahon sa pagpatay niini. Ang espesyal nga parameter # gi-update aron makita ang kausaban. Positional parameter 0 wala mausab. Ang variable nga FUNCNAME gibutang sa ngalan sa function samtang ang function nagpatuman. Ang tanan nga uban pang mga aspeto sa kinhason nga pagpatuman sa kabhang parehas tali sa usa ka function ug sa nagtawag niini gawas nga ang DEBUG trap (tan-awa ang paghulagway sa lit-ag nga gitukod ubos sa SHELL BUILTIN COMMANDS sa ubos) wala mapanunod gawas kon ang gimbuhaton gihatagan sa pagsubay nga hiyas ( tan-awa ang paghulagway sa deklarasyon nga gitukod sa ubos).

Ang mga variables local ngadto sa function mahimo nga ideklarar uban sa lokal nga command nga gitukod. Kasagaran, ang mga variable ug ang ilang mga bili gipaambit tali sa function ug sa caller niini.

Kon ang gitukod nga command return gipatuman sa usa ka function, ang function nga mahuman ug pagpatuman magpadayon sa sunod nga command human sa function call. Sa diha nga ang usa ka function nga mokompleto, ang mga bili sa positional parameters ug ang espesyal nga parameter # ibalik ngadto sa mga bili nga wala pa sa pagpatuman sa gimbuhaton.

Ang mga ngalan ug mga kahulugan sa mga function mahimo nga gilista uban sa -f nga kapilian sa pag- deklarar o pag- type sa gitukod nga mga sugo. Ang -F nga kapilian nga ipahayag o typeset maglista sa mga ngalan sa function lamang. Ang mga gimbuhaton mahimong ma-eksport aron ang subshells awtomatik nga ipasabut kini sa -f nga opsyon sa export nga gitukod.

Ang mga gimbuhaton mahimo nga recursive. Walay limitasyon ang gipahamtang sa gidaghanon sa mga tawag sa recursive.

ARITHMETIC EVALUATION

Ang kabhang nagtugot sa mga pahayag sa aritmetika aron mahibal-an, ubos sa pipila ka mga kahimtang (tan-awa ang letin nga gitukod nga command ug Arithmetic Expansion ). Ang pag-evaluate gihimo sa fixed-width integers nga walay tseke alang sa pag-awas, bisan ang pagbahin sa 0 nahitala ug gibutang nga usa ka sayup. Ang mga operators ug ang ilang precedence ug associativity parehas sa C language. Ang mosunod nga listahan sa mga opereytor gi-grupo ngadto sa lebel sa managsama nga nag-una nga mga operator. Ang mga lebel gilista sa han-ay sa pagkunhod sa kausaban.

id ++ id -

us aka post-increment ug post-decrement

++ id - id

lain-laing pre-increment ug pre-decrement

- +

unary minus ug plus

! ~

makatarunganon ug gamay nga negation

**

exponentiation

* /%

pagpadaghan, pagbahin, nahibilin

+ -

Dugang pa, pagkuha

<< >>

Ang wala ug tuo nga bitwise mibalhin

<=> = <>

pagtandi

==! =

pagkaparehas ug pagkadili managsama

&

bitwise AND

^

bitbit nga exclusive OR

|

bitwise OR

&&

lohikal nga AND

||

makatarunganon nga OR

expr ? expr : expr

conditional evaluation

= * = / =% = + = - = << = >> = & = ^ = | =

assignment

expr1 , expr2

koma

Ang mga variables sa Shell gitugotan nga mga operand; Ang pagpalapad sa mga parameter gipahigayon sa wala pa mahibal-an ang ekspresyon. Sulod sa usa ka ekspresyon, ang mga variables sa kabhang mahimo usab nga isaysay pinaagi sa ngalan nga dili gamiton ang parameter nga pagpalapad syntax. Ang bili sa usa ka baryable nga gibana-bana ingon nga usa ka ekspresyon nga aritmetika kung kini gihisgutan. Ang usa ka variance sa kabhang dili kinahanglang adunay kinaiya sa integer nga gamiton sa usa ka ekspresyon.

Ang mga Constant nga adunay nanguna nga 0 gihubad nga numero sa octal. Usa ka nag-unang 0x o 0X nagpasabot sa hexadecimal. Kay kon dili, ang numero mokuha sa porma [ base # ] n, diin ang base usa ka decimal nga numero tali sa 2 ug 64 nga nagrepresentar sa base sa aritmetika, ug n usa ka numero sa nga base. Kung wala ang base # , ang base 10 gigamit. Ang mga numero nga mas dako kay sa 9 ang girepresentar sa mga letra nga letra, ang uppercase nga mga letra, @, ug _, sa maong han-ay. Kon ang base mas ubos kay sa o katumbas sa 36, ​​ang lowercase ug uppercase nga mga letra mahimong gamiton nga dili mausab aron paghawas sa mga numero tali sa 10 ug 35.

Ang mga operators gitimbang-timbang sa pagkasunodsunod. Ang mga sub-ekspresyon sa parentheses una nga gibana-bana ug mahimong masabtan ang mga lagda sa ibabaw.

KONDISYONAL NGA MGA PANAHON

Ang conditional nga mga ekspresyon gigamit sa [[ compound command ug sa test ug [ builtin commands aron masulayan ang mga attribute sa file ug maghimo sa mga pagtandi ug pagtandi sa aritmetika. Giporma ang mga ekspresyon gikan sa mosunod nga unary o binary primaries. Kon adunay bisan unsang argumento sa file sa usa sa mga primarya mao ang porma / dev / fd / n , nan ang file descriptor n gisusi. Kon ang argumento sa file sa usa sa mga primarya mao ang usa sa / dev / stdin , / dev / stdout , o / dev / stderr , gisulat ang file descriptor 0, 1, o 2, matag usa.

-a nga file

Tinuod kung anaa ang file .

-b file

Tinuod kung naa ang file ug usa ka block nga espesyal nga file.

-c file

Tinuod kung anaa ang file ug usa ka espesyal nga file nga karakter.

-d nga file

Tinuod kung ang file anaa ug usa ka directory.

-e nga file

Tinuod kung anaa ang file .

-f file

Tinuod kung anaa ang file ug usa ka regular nga file.

-g file

Tinuod kung ang file naglungtad ug usa ka set-group-id.

-h file

Tinuod kung ang file anaa ug simbolo nga sumpay.

-k file

Tinuod kung anaa ang file ug ang "` sticky '' bit gitakda.

-p file

Tinuod kung naa ang file ug usa ka pipe (FIFO).

-r file

Tinuod kung anaa ang file ug mabasa.

-s file

Tinuod kung naa ang file ug adunay usa ka gidak-on nga mas labaw kay sa zero.

-t fd

Tinuod kung ang file descriptor fd bukas ug nagtumong sa usa ka terminal.

-u nga file

Tinuod kung anaa ang file ug ang set-user-id bit gitakda.

-w nga file

Tinuod kung anaa ang file ug mahimong isulat.

-x nga file

Tinuod kung naa ang file ug mahimo'g mahimo.

-O file

Tinuod kung anaa ang file ug gipanag-iya sa epektibo nga user id.

-G file

Tinuod kung anaa ang file ug gipanag-iya sa epektibo nga grupo id.

-L file

Tinuod kung ang file anaa ug simbolo nga sumpay.

-S file

Tinuod kung anaa ang file ug usa ka socket.

-N file

Tinuod kung anaa ang file ug giusab sukad nga kini ang katapusan nabasa.

file1 - nt file2

Tinuod kung ang file1 mas bag-o (sumala sa petsa sa pagbag-o) kaysa file2 , o kung ang file1 anaa ug ang file2 dili.

file1 - ot file2

Tinuod kung file1 mas tigulang kay sa file2 , o kung adunay file2 ug file1 dili.

file1 -ef file2

Tinuod kung ang file1 ug file2 nagtumong sa sama nga device ug mga numero sa inode.

-o optname

Tinuod kung ang kahon sa opsyon sa kapungot gipahigayon. Tan-awa ang listahan sa mga opsyon ubos sa paghulagway sa -o nga kapilian sa set nga gitukod sa ubos.

-z string

Tinuod kung ang gitas-on sa hilo mao ang zero.

-sa hilo

hilo

Tinuod kung ang gitas-on sa lambo dili zero.

string1 == string2

Tinuod kung parehas ang mga linya. = mahimo gamiton puli sa == alang sa higpit nga pagsunod sa POSIX.

string1 ! = string2

Tinuod kung ang mga linya dili managsama.

string1 < string2

Tinuod kung ang string1 managsama sa wala'y string2 lexicographically sa kasamtangan nga lugar.

string1 > string2

Tinuod kung ang string1 mura human sa string2 lexicographically sa kasamtangan nga lugar.

arg1 OP arg2

Ang OP usa sa -eq , -ne , -lt , -le , -gt , o -ge . Kining mga aritmetika nga mga binary operators mobalik nga tinuod kung ang arg1 katumbas sa, dili katumbas sa, mas ubos kay sa, mas ubos o katumbas sa, mas labaw pa kay sa, o labaw pa kay sa o katumbas sa arg2 , matag usa. Ang arg1 ug arg2 mahimong positibo o negatibo nga integer.

DAGHANG PANAGBANGI SA KOMANDA

Sa diha nga ang usa ka yano nga sugo gipatuman, ang kabhang nagpahigayon sa mosunod nga mga pagpalapad, mga buluhaton, ug mga redirections, gikan sa wala ngadto sa tuo.

1. Ang mga pulong nga gimarkahan sa parser isip mga variable assignments (kadtong nag-una sa command name) ug redirections naluwas alang sa pagproseso sa ulahi.

2. Ang mga pulong nga wala'y lain-laing mga assignment o mga redirections gipalapad. Kon adunay mga pulong nga magpabilin human sa pagpalapad, ang unang pulong gikuha aron mahimong ngalan sa sugo ug ang nahibilin nga mga pulong mao ang mga argumento.

3.Redirections gipahigayon sumala sa gihulagway sa ibabaw ubos sa PAGBUKAW .

4. Ang teksto human sa = sa matag matag usa nga assignment gipaubos sa pagpalapad sa tilde, pagpalapad sa mga parameter, pag-ilis sa sugo, pag-uswag sa aritmetika, ug pagkutlo sa gikuha sa wala pa ma-assign sa variable.

Kung walay resulta nga command name, ang mga variable assignment makaapekto sa kasamtangan nga kabhang sa kinhason. Kay kon dili, ang mga variables gidugang ngadto sa kalikupan sa gipatuman nga sugo ug dili makaapekto sa kasamtangan nga kabhang sa palibot. Kung ang usa sa mga buluhaton mosulay sa paghatag usa ka bili sa usa ka mabasa nga mabag-o, usa ka sayup ang mahitabo, ug ang sugo mogula uban sa usa ka dili-zero nga kahimtang.

Kung walay resulta sa ngalan sa command, ang redirections ipahigayon, apan dili makaapekto sa kasamtangan nga kabhang sa kinhason. Ang error sa redirection ang hinungdan sa sugo nga mogawas uban ang usa ka dili-zero status.

Kon adunay usa ka command name nga nahibilin human sa pagpalapad, ang pagpatuman nagpadayon ingon nga gihulagway sa ubos. Kay kon dili, mogula ang sugo. Kon ang usa sa mga ekspansyon adunay usa ka pagpuli sa sugo, ang exit status sa sugo mao ang exit status sa katapusang command substitution nga gipahigayon. Kung wala'y mga kapuli nga pag-order, ang command exits nga may zero nga status.

SUGYOT SA KOMANDA

Human sa usa ka sugo nga gibahin ngadto sa mga pulong, kon kini moresulta sa usa ka yano nga sugo ug usa ka opsyonal nga lista sa mga argumento, ang mga mosunod nga mga aksyon gikuha.

Kon ang ngalan sa command walay mga slashes, ang panit mosulay sa pagpangita niini. Kung dunay usa ka function sa kabhang sa maong ngalan, kana nga katungdanan gisangpit ingon sa gihulagway sa ibabaw sa mga FUNCTIONS . Kung ang pangalan dili katumbas sa usa ka function, ang mga kabhang nagapangita niini diha sa listahan sa mga tinukod nga kabhang. Kon ang usa ka dula nga nakit-an, nga gitukod ang gitukod.

Kung ang ngalan dili usa ka function sa shell o usa ka builtin, ug wala'y mga slashes, ang bash nagsiksik sa matag elemento sa PATH alang sa usa ka direktoryo nga adunay usa ka executable file sa ngalan. Gigamit ni Bash ang hash table aron hinumdoman ang hingpit nga mga pangalan sa mga file nga executable (tan-awa ang hash ubos sa SHELL BUILTIN COMMANDS sa ubos). Ang usa ka bug-os nga pagpangita sa mga direktoryo sa PATH gihimo lamang kon ang sugo dili makita sa hash table. Kon ang pagpangita dili molampos, ang kopya nagpatik sa usa ka mensahe sa sayup ug mibalik sa usa ka exit status nga 127.

Kung ang pagpangita magmalampuson, o kung ang ngalan sa command adunay usa o labaw pa nga mga slashes, ang kabhang nagpatuman sa ginganlan nga programa sa usa ka managlahing palibot nga pagpatuman. Ang argumento 0 gipahimutang sa ngalan nga gihatag, ug ang nahibilin nga mga argumento sa sugo gipahimutang sa mga argumento nga gihatag, kon aduna.

Kon kini nga pagpatay mapakyas tungod kay ang file wala sa format nga mahimo, ug ang file dili usa ka directory, gituohan nga usa ka shell script , usa ka file nga adunay mga command shell. Usa ka subshell ang gigamit sa pagpatay niini. Kini nga subshell nag-reinitialize sa iyang kaugalingon, aron nga ang epekto sama sa usa ka bag-ong kabhang nga gihangyo sa pagdumala sa script, gawas nga ang mga lokasyon sa mga sugo nga nahinumduman sa ginikanan (tan-awa ang hash sa ubos sa SHELL BUILTIN COMMANDS ) nga gihuptan sa bata.

Kung ang programa usa ka file nagsugod sa #! , ang nahibilin sa unang linya nagtino sa usa ka tighubad alang sa programa. Ang kabhang nagpatuman sa gitakda nga interpreter sa mga operating system nga wala magsulbad niini nga executable format mismo. Ang mga argumento sa maghuhubad naglangkob sa usa ka opsyonal nga argumento nga nagsunod sa ngalan sa maghuhubad sa unang linya sa programa, nga gisundan sa ngalan sa programa, nga gisundan sa mga argumento sa komentaryo, kon aduna.

KINABUHI NGA PAGSULOD SA KOMANDA

Ang kabhang adunay usa ka palibot nga pagpatuman , nga naglangkob sa mosunod:

* magbukas sa mga file nga napanunod sa kabhang sa pagsangpit, ingon nga giusab sa mga redirections nga gihatag ngadto sa exec builtin

* ang kasamtangan nga nagtrabaho nga direktoryo nga gitakda sa cd , pushd , o popd , o napanunod sa kabhang sa pagsangpit

* ang maskara sa paglalang sa file nga gitakda sa umask o napanunod gikan sa ginikanan sa kabhang

* kasamtangang mga lit-ag nga gibutang sa lit-ag

* mga kabhang sa kinhason nga gitakda sa matag usa nga gitugyanan o gitakda o napanunod gikan sa ginikanan sa kabhang sa kinaiyahan

* Mga function sa kabhang nga gihubit atol sa pagpatay o napanunod gikan sa ginikanan sa kabhang sa kalikupan

* nga mga kapilian nga mahimo sa pagsangyaw (mahimong pinaagi sa default o uban sa command-line arguments) o pinaagi sa set

* mga kapilian nga mahimo sa shopt

* mga alyas nga kabhang nga gihubit uban sa alyas

* nagkalain-laing mga ID sa proseso, lakip na ang mga trabaho sa kasinatian, ang bili sa $$ , ug ang bili sa $ PPID

Sa diha nga ang usa ka yano nga sugo gawas sa usa ka function sa builtin o kabhang kinahanglan ipatuman, kini gigamit sa usa ka managlahing palibot nga pagpatuman nga naglangkob sa mosunod. Gawas kon makita, ang mga mithi napanunod gikan sa kabhang.

* ang bukas nga mga file sa kabhang, ingon man ang bisan unsang mga pag-usab ug mga pagdugang nga gitino pinaagi sa redirections sa sugo

* ang kasamtangan nga nagtrabaho nga direktoryo

* ang maskara sa paglalang sa file

* Mga variables sa kabhang nga gimarkahan alang sa eksport, uban sa mga variable nga gieksport alang sa mando, nga gipasa sa kinaiyahan

* ang mga lit-ag nga gikuha sa kabhang gi-reset ngadto sa mga bili nga napanunod gikan sa ginikanan sa kabhang, ug ang mga lit-ag nga gibalewala sa kabhang gibaliwala

Ang usa ka sugo nga gisang-at niini nga linain nga palibut dili makaapekto sa kalikupan nga pagpatuman sa kabhang.

Ang command substitution ug asynchronous nga mga sugo gisangpit diha sa usa ka environment subshell nga usa ka duplicate sa kabhang sa palibot, gawas nga ang mga lit-ag nga gikuha sa kabhang gi-reset ngadto sa mga mithi nga ang kabhang nga napanunod gikan sa iyang ginikanan sa pagsangpit. Ang gitukod nga mga mando nga gigamit isip kabahin sa usa ka pipeline gipatuman usab sa usa ka subshell nga palibot. Ang mga pagbag-o nga gihimo sa subshell nga palibot dili makaapekto sa kalikupan nga pagpatay sa kabhang.

Kon ang usa ka sugo gisundan sa usa ka & & kontrol sa trabaho dili aktibo, ang default standard input alang sa command mao ang walay sulod nga file / dev / null . Kay kon dili, ang gimando nga sugo makapanunod sa file descriptors sa call shell ingon nga giusab sa redirections.