Skip to main content

Linux - Unix Command: bash

Supersection 1, Less Comfortable (Abril 2024)

Supersection 1, Less Comfortable (Abril 2024)
Anonim

Ang Linux command Bash ay isangsh-magkatugma na wika ng interpreter ng utos na nagsasagawa ng mga command na binasa mula sa karaniwang input o mula sa isang file.Bash isinasama din ang mga kapaki-pakinabang na tampok mula sa Korn at C shell (ksh atcsh).

Mga Opsyon sa Bash

Bilang karagdagan sa mga opsyon na single-character shell na dokumentado sa paglalarawan ngitakda builtin command,Bash binibigyang-kahulugan ang mga sumusunod na pagpipilian kapag ito ay tinatawag na:

  • -c string: Kung ang-c ang pagpipilian ay naroroon, at pagkatapos ay basahin ang mga utos string . Kung may mga argumento pagkatapos ng string , ang mga ito ay nakatalaga sa positional parameter, na nagsisimula sa$0.
  • -i: Kung ang-i ang opsyon ay naroroon, ang shell ay interactive .
  • -l: GumawaBash kumilos bilang kung ito ay tinatawag na isang shell ng pag-login.
  • -r: Kung ang-r ang opsyon ay naroroon, ang shell ay nagiging pinaghihigpitan.
  • -s: Kung ang-s ang opsyon ay naroroon, o kung walang mga argumento na mananatili pagkatapos ng pagpoproseso ng opsyon, pagkatapos ay basahin ang mga command mula sa karaniwang input. Ang pagpipiliang ito ay nagbibigay-daan sa positional parameter na itatakda kapag gumagamit ng interactive shell.
  • -D: Isang listahan ng lahat ng mga double-quoted string na sinundan ng$ ay nakalimbag sa karaniwang output. Ito ang mga string na napapailalim sa pagsasalin ng wika kapag ang kasalukuyang lokal ay hindiC oPOSIX. Ito ay nagpapahiwatig ng -n pagpipilian; walang mga utos ang gagawin.
  • - + O shopt_option : shopt_option ay isa sa mga pagpipilian ng shell na tinanggap ngmamili builtin. Kung shopt_option ay naroroon,-O nagtatakda ng halaga ng opsyon na iyon, at+ O sumang-ayon ito. Kung shopt_option ay hindi ibinibigay, ang mga pangalan at mga halaga ng mga pagpipilian sa shell na tinanggap ngmamili ay naka-print sa karaniwang output. Kung ang pagpipiliang invocation ay + O, ang output ay ipinapakita sa isang format na maaaring magamit muli bilang input.
  • --: A-- nagpapahiwatig ng dulo ng mga opsyon at hindi pinapagana ang karagdagang pagpoproseso ng opsyon. Anumang mga argumento pagkatapos ng-- ay itinuturing bilang mga filename at argumento. Isang argumento ng- ay katumbas ng--.

Bash Binibigyang-kahulugan din ng isang bilang ng mga opsyon na multi-character. Dapat lumitaw ang mga opsyon na ito sa command line bago makilala ang mga opsyon na single-character:

  • --dump-po-strings: Katumbas sa-D, ngunit ang output ay nasa GNU gettext po (portable object) na format ng file.
  • --dump-string: Katumbas sa-D.
  • - Tumulong: Magpakita ng mensahe sa paggamit sa standard output at matagumpay na lumabas.
  • --init-file: file at --rcfile file : Ipatupad ang mga utos mula sa file sa halip ng karaniwang personal initialization file ~ / .bashrc kung ang shell ay interactive.
  • --mag log in: Katumbas sa-l.
  • - walang pag-asa: Huwag gamitin ang GNUBasahin ang linya library na basahin ang mga command line kapag ang shell ay interactive.
  • --noprofile: Huwag basahin ang systemwide startup file / etc / profile o anumang ng mga personal na mga file sa pag-initialize ~ / .bash_profile , ~ / .bash_login , o ~ / .profile . Bilang default,Bash nagbabasa ng mga file na ito kapag ito ay ginagamit bilang isang login shell.
  • --Norc: Huwag basahin at isagawa ang personal na initialization file ~ / .bashrc kung ang shell ay interactive. Ang opsyon na ito ay sa pamamagitan ng default kung ang shell ay tinatawag nash.
  • --posix: Baguhin ang pag-uugali ngBash kung saan ang default na operasyon ay naiiba mula sa pamantayan ng POSIX upang tumugma sa pamantayan ( posix mode ).
  • - pinaghihigpitan: Ang shell ay nahihigpitan.
  • --rpm-nangangailangan: Gumawa ng listahan ng mga file na kinakailangan para sa shell script na tumakbo. Nagpapahiwatig ito ng '-n' at napapailalim sa parehong mga limitasyon bilang sumulat ng pagsusuri ng oras ng pag-check ng error; Ang mga backtick, na mga pagsusulit, at mga pag-eval ay hindi ma-parse upang ang ilang mga dependency ay maaaring napalampas.
  • - Sabiose: Katumbas sa-v.
  • - Pagbabago: Ipakita ang impormasyon ng bersyon para sa halimbawang ito ngBash sa karaniwang output at matagumpay na lumabas.

Mga argumento

Kung ang mga argumento ay mananatili pagkatapos ng pagproseso ng opsyon at hindi ang-c ni ang-s Ang pagpipilian ay ibinigay, ang unang argument ay ipinapalagay na ang pangalan ng isang file na naglalaman ng mga command shell. Kung Bash ay ginagamit sa ganitong paraan,$0 ay naka-set sa pangalan ng file, at ang positional parameter ay nakatakda sa mga natitirang argumento.Bash bumabasa at nagsasagawa ng mga utos mula sa file na ito; pagkatapos ay lumabas.Bash's exit status ay ang exit status ng huling command executed sa script. Kung walang mga utos ang naisakatuparan, ang exit status ay 0. Isang pagtatangka ang unang ginawa upang buksan ang file sa kasalukuyang direktoryo, at, kung walang file ay natagpuan, pagkatapos ay i-scan ng shell ang mga direktoryo saPATH para sa script.

Pagsamba

A login shell ay isa na ang unang character ng argument zero ay isang-, o ang isang nagsimula sa--mag log in pagpipilian.

Isang interactive Ang shell ay nagsimula nang walang di-opsyon na argumento at wala ang-c opsyon na ang karaniwang input at output ay parehong nakakonekta sa mga terminal na tinutukoy ng isatty (3), o ang isang nagsimula sa-i pagpipilian.PS1 ay naitakda at $- kabilang ang kung bash ay interactive, na nagpapahintulot sa isang shell script o isang startup file upang subukan ang estado na ito.

Ang mga sumusunod na talata ay naglalarawan kung paanoBash executes nito startup file. Kung mayroon man sa alinman sa mga file ngunit hindi mababasa,Bash Nag-ulat ng isang error. Ang mga Tildes ay pinalawak sa mga pangalan ng file tulad ng inilarawan sa Tilde Expansion.

KailanBash ay ginagamit bilang isang interactive shell ng pag-login o bilang isang di-interactive na shell na may--mag log in opsyon, ito unang bumabasa at executes ng mga utos mula sa file / etc / profile , kung umiiral ang file na iyon. Matapos basahin ang file na iyon, hinahanap nito ~ / .bash_profile , ~ / .bash_login , at ~ / .profile , sa utos na iyon, at bumabasa at nagsasagawa ng mga utos mula sa unang isa na umiiral at nababasa. Ang--noprofile Ang opsyon ay maaaring gamitin kapag ang shell ay nagsimula upang pagbawalan ang pag-uugali na ito.

Kapag lumabas ang isang shell ng pag-login,Bash bumabasa at nagsasagawa ng mga utos mula sa file ~ / .bash_logout , kung umiiral ito.

Kapag ang isang interactive na shell na hindi isang shell ng pagsisimula ay sinimulan,Bash nagbabasa at nagsasagawa ng mga utos mula sa ~ / .bashrc , kung umiiral ang file na iyon. Maaaring ito ay inhibited sa pamamagitan ng paggamit ng--Norc pagpipilian. Ang--rcfile file Ang puwersa ay puwersahinBash upang basahin at isagawa ang mga utos mula sa file sa halip ng ~ / .bashrc .

KailanBash ay nagsimula nang di-interactively - upang magpatakbo ng isang script ng shell, halimbawa - tinitingnan nito ang variableBASH_ENV sa kapaligiran, nagpapalawak ng halaga nito kung lumilitaw ito doon, at ginagamit ang pinalawak na halaga bilang pangalan ng isang file na basahin at isagawa.Bash behaves bilang kung ang mga sumusunod na utos ay naisakatuparan:

kung -n "$ BASH_ENV"; pagkatapos. "$ BASH_ENV"; fi

ngunit ang halaga ngPATH Hindi ginagamit ang variable upang maghanap para sa pangalan ng file.

KungBash ay tinatawag na pangalansh, sinusubukan nito na gayahin ang pag-uugali ng startup ng mga makasaysayang bersyon ngsh mas malapit hangga't maaari, habang sumusunod sa POSIX standard pati na rin. Kapag ginagamit bilang isang interactive na shell ng pag-login o isang di-interactive shell na may--mag log in opsyon, sinubukan muna itong basahin at isagawa ang mga utos mula sa / etc / profile at ~ / .profile , sa utos na iyon. Ang--noprofile Ang opsyon ay maaaring gamitin upang pagbawalan ang pag-uugali na ito. Kapag ginagamit bilang isang interactive shell na may pangalan sh, Bash hinahanap ang variableENV, nagpapalawak ng halaga nito kung ito ay tinukoy, at ginagamit ang pinalawak na halaga bilang pangalan ng isang file na basahin at isagawa. Dahil ang isang shell na tinatawag nash ay hindi nagtatangka na basahin at isagawa ang mga utos mula sa anumang iba pang mga file ng startup, ang--rcfile Ang opsyon ay walang epekto. Isang di-interactive na shell na hininga sa pangalansh ay hindi nagtatangka na basahin ang anumang iba pang mga file ng startup. Kapag tinawag bilangsh, Bash pumasok posix mode pagkatapos mabasa ang mga startup file.

KailanBash ay nagsimula sa posix mode, tulad ng--posix opsyon na command line, sinusunod nito ang standard na POSIX para sa mga file ng startup. Sa mode na ito, ang mga interactive na shell ay pinalawak angENV variable at command ay binabasa at isinagawa mula sa file na ang pangalan ay pinalawak na halaga. Walang iba pang mga startup file ang nababasa.

Bash pagtatangka upang matukoy kung kailan ito ay pinapatakbo ng remote shell demonyo, kadalasan rshd . Kung Bash tinutukoy na ito ay pinapatakbo ng rshd , nagbabasa at nagsasagawa ng mga utos mula sa ~ / .bashrc , kung umiiral ang file na iyon at nababasa. Hindi ito gagawin kung mahihingi bilangsh. Ang--Norc Ang opsyon ay maaaring gamitin upang pagbawalan ang pag-uugali na ito, at ang--rcfile Maaaring gamitin ang pagpipilian upang pilitin ang isa pang file na mabasa, ngunit rshd ay hindi karaniwang gumagamit ng shell na may mga opsyon o pinapayagan ang mga ito na matukoy.

Kung ang shell ay nagsimula sa epektibong gumagamit (grupo) id hindi katumbas ng tunay na gumagamit (grupo) id, at ang-p ang opsyon ay hindi ibinibigay, walang mga startup file ang nababasa, ang mga function ng shell ay hindi minana mula sa kapaligiran, angSHELLOPTS Ang variable, kung ito ay lilitaw sa kapaligiran, ay hindi pinansin, at ang epektibong user id ay naka-set sa totoong user id. Kung ang-p Ang opsyon ay ibinibigay sa invocation, ang pag-uugali ng startup ay pareho, ngunit ang epektibong user id ay hindi na-reset.

Mga kahulugan

Ang mga sumusunod na kahulugan ay ginagamit sa buong pahinga ng dokumentong ito:

  • Blangko: Isang puwang o tab.
  • Salita: Ang isang pagkakasunud-sunod ng mga character na itinuturing na isang solong yunit ng shell. Kilala rin bilang isang token.
  • Pangalan: A salita na binubuo lamang ng mga alphanumeric character at mga underscore, at nagsisimula sa isang alpabetikong character o underscore. Tinutukoy din bilang isangidentifier.
  • Metacharacter: Ang isang character na, kapag hindi nabanggit, naghihiwalay ng mga salita. Isa sa mga sumusunod:| &; () <> space tab
  • Control operator: A token na gumaganap ng isang control function. Ito ay isa sa mga sumusunod na simbolo: || & && ; ;; ( ) |

Mga Nakalaang Salita

Nakareserbang mga salita ay mga salita na may isang espesyal na kahulugan sa shell. Ang mga sumusunod na salita ay kinikilala bilang reserba kapag hindi nakalap at alinman sa unang salita ng isang simpleng utos o ikatlong salita ng isangkasoopara sa utos:

! ang kaso ay ginawa elif iba pa esac fi para sa function kung sa piliin pagkatapos hanggang habang {} oras

Shell Grammar: Simple Commands

A simpleng utos ay isang pagkakasunud-sunod ng mga opsyonal na takdang variable na sinusundan ngblangko-Pahiwalay na mga salita at redirections at tinapos ng isang control operator . Tinutukoy ng unang salita ang utos na isagawa, at ipinapasa bilang argument zero. Ang natitirang mga salita ay ipinapasa bilang mga argumento sa tinatawag na utos.

Ang halaga ng pagbabalik ng isang simpleng utos ay ang exit status nito, o 128+ n kung ang command ay tinapos sa pamamagitan ng signal n .

Pipelines

A pipeline ay isang pagkakasunud-sunod ng isa o higit pang mga utos na pinaghiwalay ng karakter|. Ang format para sa isang pipeline ay oras -p ! utos | command2 … .

Ang karaniwang output ng utos ay konektado sa pamamagitan ng isang tubo sa karaniwang input ng command2 . Ang koneksyon na ito ay isinagawa bago ang anumang redirections na tinukoy ng command.

Kung ang nakalaan na salita! nauuna ang isang pipeline, ang exit status ng pipeline na iyon ay ang lohikal na HINDI ng katayuan ng exit ng huling utos. Kung hindi, ang katayuan ng pipeline ay ang exit status ng huling command. Naghihintay ang shell para sa lahat ng mga utos sa pipeline upang tapusin bago bumalik ang isang halaga.

Kung angoras Nakalaan ang salitang precedes ng isang pipeline, ang lumipas pati na rin ang gumagamit at sistema ng oras na natupok ng pagpapatupad nito ay iniulat kapag ang pipeline ay tinatapos. Ang-p Binabago ng opsyon ang format ng output sa tinukoy ng POSIX. AngTIMEFORMAT Ang variable ay maaaring itakda sa isang format na string na tumutukoy kung paano dapat ipakita ang timing na impormasyon.

Ang bawat command sa isang pipeline ay isinasagawa bilang isang hiwalay na proseso (sa isang subshell, halimbawa).

Listahan

A listahan ay isang pagkakasunud-sunod ng isa o higit pang mga pipeline na pinaghiwalay ng isa sa mga operator;, &, &&, o||, at opsyonal na tinapos ng isa sa;, &, o.

Ng mga listahan ng mga operator na ito,&& at|| may pantay na pangunahin, na sinusundan ng; at&, na may pantay na pangunahin.

Ang isang pagkakasunud-sunod ng isa o higit pang mga bagong linya ay maaaring lumitaw sa a listahan sa halip na isang semikolon upang limasin ang mga utos.

Kung ang utos ay tinapos ng operator ng control&, ang shell ay nagpapatupad ng command sa background sa isang subshell. Ang shell ay hindi naghihintay para matapos ang command, at ang katayuan ng return ay 0. Mga utos na pinaghihiwalay ng isang; ay pinaandar nang sunud-sunod; ang shell ay naghihintay para sa bawat command upang wakasan naman. Ang katayuan ng pagbabalik ay ang exit status ng huling command na isinagawa.

Ang mga kontrol ng mga operator&& at|| ipakahulugan AT listahan at OR listahan, ayon sa pagkakabanggit. May isang form sa AT ang listahan

command1 && command2

command2 ay papatayin kung, at kung lamang, command1 nagbabalik ng isang exit status ng zero.

Ang isang listahan ng OR ay ang form

command1 || command2

command2 ay papatayin kung at kung lamang command1 Nagbabalik ng isang hindi-zero na exit status. Ang katayuan ng pagbabalik ng mga listahan ng AT at O ​​ay ang exit status ng huling command na isinagawa sa listahan.

Compound Commands

A compound command ay isa sa mga sumusunod:

(listahan) : listahan ay pinaandar sa isang subshell. Ang mga variable na takdang-aralin at mga builtin command na nakakaapekto sa kapaligiran ng shell ay hindi mananatiling may bisa matapos makumpleto ang command. Ang katayuan ng pagbabalik ay ang exit status ng listahan .

{listahan; } : listahan ay pinaandar lamang sa kasalukuyang kapaligiran ng shell. listahan dapat na wakasan sa isang newline o semicolon. Ito ay kilala bilang isang command group . Ang katayuan ng pagbabalik ay ang exit status ng listahan . Tandaan na hindi katulad ng metacharacters( at), { at} ay Nakareserbang mga salita at dapat mangyari kung saan pinahihintulutan ang isang nakalaang salita na makilala. Dahil hindi sila nagiging sanhi ng break na salita, dapat silang ihiwalay listahan sa pamamagitan ng whitespace.

((pagpapahayag)) : Ang pagpapahayag ay sinusuri ayon sa mga panuntunang inilarawan sa ilalim Pagsusuri ng aritmetika. Kung ang halaga ng expression ay hindi zero, ang return status ay 0; kung hindi man ang katayuan ng pagbabalik ay 1. Ito ay eksaktong katumbas nghayaan ' pagpapahayag '.

pagpapahayag : Bumalik ng isang katayuan ng 0 o 1 depende sa pagsusuri ng kondisyonal na pananalita pagpapahayag . Ang mga ekspresyon ay binubuo ng mga primarya na inilarawan sa ibaba Conditional Expressions. Ang pagbaba ng salita at pagpapalawak ng pathname ay hindi isinagawa sa mga salita sa pagitan ng at; pagpapalawak ng tilde, parameter at pagpapalawak ng variable, pagpapalawak ng aritmetika, pagpapalit ng utos, pagpapalit ng proseso, at pagtanggal ng pag-quote ay isinagawa.

Kapag ang== at!= ginagamit ang mga operator, ang string sa kanan ng operator ay itinuturing na isang pattern at naitugmang ayon sa mga patakaran na inilarawan sa ilalimPagtutugma ng Pattern. Ang halaga ng return ay 0 kung ang string ay tumutugma o hindi tumutugma sa pattern, ayon sa pagkakabanggit, at kung hindi man. Anumang bahagi ng pattern ay maaaring naka-quote upang pilitin ito upang maitugma bilang isang string.

Ang mga expression ay maaaring pinagsama gamit ang sumusunod na mga operator, na nakalista sa nagpapababa ng pagkakasunud-sunod ng pangunahin:

  • (expression): Ibinabalik ang halaga ng pagpapahayag . Ito ay maaaring gamitin upang i-override ang normal na precedence ng mga operator.
  • ! expressio n: Tama kung pagpapahayag ay mali.
  • expression1 && expression2 : Tama kung kapwa expression1 at expression2 ay totoo.
  • expression1 || expression2 : Tama kung alinman expression1 o expression2 ay totoo.

Ang&& at|| Hindi sinusuri ng mga operator expression2 kung ang halaga ng expression1 ay sapat upang matukoy ang halaga ng pagbabalik ng buong kondisyong pagpapahayag.

  • para sa pangalan sa salita ; gawin listahan ; tapos na: Ang listahan ng mga sumusunod na salitasa ay pinalawak, na bumubuo ng isang listahan ng mga item. Ang variable pangalan ay nakatakda sa bawat elemento ng listahang ito sa pagliko, at listahan ay pinaandar sa bawat oras. Kung angsa salita ay tinanggal, angpara sa ang command executes listahan isang beses para sa bawat positional parameter na nakatakda. Ang katayuan ng pagbabalik ay ang exit status ng huling command na executes. Kung ang pagpapalawak ng mga item na sumusunodsa nagreresulta sa walang laman na listahan, walang mga utos ang naisakatuparan, at ang katayuan ng pagbalik ay 0.
  • para sa (( expr1 ; expr2 ; expr3 )) ; gawin listahan ; tapos na: Una, ang ekspresyon ng aritmetika expr1 ay sinusuri ayon sa mga panuntunang inilarawan sa ilalimPagsusuri ng aritmetika. Ang aritmetika na expression expr2 pagkatapos ay sinusuri nang paulit-ulit hanggang sa ito ay sinusuri sa zero. Sa bawat oras expr2 sinusuri sa isang di-zero na halaga, listahan ay pinaandar at ang aritmetika na expression expr3 ay sinusuri. Kung ang anumang expression ay tinanggal, ito ay behaves bilang kung sinusuri ito sa 1. Ang halaga ng pagbabalik ay ang exit status ng huling command sa listahan na isinasagawa, o hindi totoo kung ang alinman sa mga expression ay hindi wasto.
  • piliin pangalan sa salita ; gawin listahan ; tapos na: Ang listahan ng mga sumusunod na salitasa ay pinalawak, na bumubuo ng isang listahan ng mga item. Ang hanay ng pinalawak na mga salita ay naka-print sa karaniwang error, ang bawat isa ay nauna sa pamamagitan ng isang numero. Kung angsa salita ay tinanggal, ang positional parameter ay naka-print. Ang PS3 Ang prompt ay ipinapakita at isang linya na basahin mula sa karaniwang input. Kung ang linya ay binubuo ng isang numero na naaayon sa isa sa mga ipinapakitang salita, pagkatapos ay ang halaga ng pangalan ay nakatakda sa salitang iyan. Kung ang linya ay walang laman, ang mga salita at prompt ay muling ipapakita. Kung nabasa ang EOF, natapos ang utos. Anumang iba pang mga halaga ng pagbabasa sanhi pangalan upang itakda sa null. Ang line read ay naka-save sa variableREPLY. Ang listahan ay pinaandar pagkatapos ng bawat seleksyon hanggang isangpahinga Ang command ay pinaandar. Ang exit status ngpiliin ang katayuan ng exit ng huling utos na isinagawa sa listahan , o zero kung walang mga utos ang naisakatuparan.
  • kaso salita sa ( pattern | pattern : Akaso Ang unang command ay nagpapalawak salita , at sinusubukang itugma ito laban sa bawat isa pattern sa turn, gamit ang parehong mga panuntunan sa pagtutugma tulad ng pagpapalawak ng pathname. Kapag ang isang tugma ay natagpuan, ang nararapat listahan ay pinaandar. Matapos ang unang tugma, walang mga kasunod na tugma ay sinubukan. Ang katayuan ng exit ay zero kung walang pattern na tumutugma. Kung hindi, ito ay ang exit status ng huling command na isinagawa sa listahan .
  • kung listahan ; pagkatapos listahan; at elif listahan ; pagkatapos listahan ; … iba pa listahan ; fi: Angkung listahan ay pinaandar. Kung ang katayuan ng exit nito ay zero, angpagkatapos listahan ay pinaandar. Kung hindi, bawat isa elif listahan ay papatayin, at kung ang katayuan ng exit nito ay zero, ang nararapatpagkatapos listahan ay naisakatuparan at makumpleto ang utos. Kung hindi, angiba pa listahan ay papatayin, kung kasalukuyan. Ang exit status ay ang exit status ng huling command executed, o zero kung walang kondisyon na sinubukan totoo.
  • habang listahan ; gawin listahan ; tapos na at hanggang listahan ; gawin listahan ; tapos na: Anghabang Ang command ay patuloy na nagpapatupad nggawin listahan hangga't ang huling command sa listahan nagbabalik ng isang exit status ng zero. Anghanggang Ang utos ay magkapareho sahabang utos, maliban na ang pagsubok ay negated; anggawin listahan ay papatayin hangga't ang huling command sa listahan Nagbabalik ng isang hindi-zero na exit status. Ang exit status nghabang athanggang Ang mga utos ay ang exit status ng hulinggawin listahan command executed, o zero kung wala ay pinaandar.
  • function pangalan () { listahan ; }: Tinutukoy nito ang isang function na pinangalanan pangalan . Ang katawan ng function ay ang listahan ng mga utos sa pagitan ng {at}. Ang listahan na ito ay pinaandar sa tuwing pangalan ay tinukoy bilang ang pangalan ng isang simpleng utos. Ang exit status ng isang function ay ang exit status ng huling command na isinagawa sa katawan.

Mga komento

Sa isang di-interactive na shell o isang interactive na shell kung saan ang interactive_comments opsyon samamili Pinagana ang builtin, isang salita na nagsisimula sa# nagiging sanhi ng salitang iyan at lahat ng natitirang mga character sa linya na iyon na hindi papansinin. Isang interactive na shell nang walanginteractive_comments Hindi pinagana ng mga komento ang mga opsyon na pinagana. Ang interactive_comments Ang pagpipilian ay nasa default sa mga interactive na shell.

Pag-quote

Pag-quote ay ginagamit upang alisin ang mga espesyal na kahulugan ng ilang mga character o mga salita sa shell. Maaaring gamitin ang pag-quote upang huwag paganahin ang espesyal na paggamot para sa mga espesyal na character, upang maiwasan ang nakareserbang mga salita mula sa pagiging kinikilala bilang tulad, at upang maiwasan ang pagpapalawak ng parameter.

Bawat isa sa mga metacharacters nakalista sa itaas sa ilalimMga kahulugan may espesyal na kahulugan sa shell at dapat na maipahayag kung ito ay kumakatawan sa sarili.

Kapag ginagamit ang mga pasilidad sa pagpapalawak ng command history, ang Pagpapalawak ng kasaysayan character, kadalasan!, dapat na naka-quote upang maiwasan ang pagpapalawak ng kasaysayan.

May tatlong mga mekanismo ng pag-quote: ang makatakas ang character , mga single quote, at double quotes.

Isang hindi naka-quote na backslash () ay ang makatakas ang character . Pinipreserba nito ang literal na halaga ng susunod na karakter na sumusunod sa pagbubukod ng . Kung ang pares lumitaw at ang backslash ay hindi mismo naka-quote, ang ay itinuturing bilang isang pagpapatuloy ng linya (ibig sabihin, ito ay tinanggal mula sa input stream at epektibong hindi pinansin).

Ang pag-encode ng mga character sa mga solong panipi ay nagpapanatili ng literal na halaga ng bawat karakter sa loob ng mga panipi. Ang isang solong quote ay hindi maaaring mangyari sa pagitan ng mga solong quotes, kahit na sa pamamagitan ng isang backslash.

Ang pag-encode ng mga character sa double quotes ay pinapanatili ang literal na halaga ng lahat ng mga character sa loob ng mga quote, maliban sa$, ', at. Ang mga character$ at' panatilihin ang kanilang espesyal na kahulugan sa loob ng double quotes. Ang backslash ay pinanatili lamang ang espesyal na kahulugan nito kapag sinundan ng isa sa mga sumusunod na character:$, ', ', , o. Ang isang double quote ay maaaring naka-quote sa loob ng double quote sa pamamagitan ng nauuna ito sa isang backslash.

Ang mga espesyal na parameter* at@ magkaroon ng espesyal na kahulugan kapag may double quotes.

Mga salita ng form$' string 'ay espesyal na itinuturing. Lumalawak ang salitang ito string , na may mga backslash-escaped na mga character na pinalitan gaya ng tinukoy ng ANSI C standard. Ang mga backslash escape sequences, kung kasalukuyan, ay decoded tulad ng sumusunod:

  • a: alerto (kampanilya)
  • b: backspace
  • e: isang escape character
  • f: form feed
  • n: bagong linya
  • r: pagbalik ng karwahe
  • t: pahalang na tab
  • v: vertical tab
  • \: backslash
  • ': solong quote
  • nnn : ang walong-bit na character na ang halaga ay ang halaga ng oktal nnn (isa hanggang tatlong digit)
  • x HH : ang walong-bit na character na ang halaga ay ang hexadecimal na halaga HH (isa o dalawang digit na hex)
  • c x : isang kontrol- x character

Ang pinalawak na resulta ay single-quoted, na parang ang dollar sign ay hindi pa naroroon.

Ang isang double-quoted na string na sinundan ng isang dollar sign ($) ay magsasanhi ng string na naisalin ayon sa kasalukuyang locale. Kung ang kasalukuyang locale ayC oPOSIX, ang dollar sign ay hindi pinansin. Kung ang string ay isinalin at papalitan, kapalit ay double-quoted.

Parameter

A parameter ay isang entity na nag-iimbak ng mga halaga. Maaari itong maging isang pangalan , isang numero, o isa sa mga espesyal na character na nakalista sa ilalimMga Espesyal na Parameter. Para sa mga layunin ng shell, a variable ay isang parameter na tinukoy ng isang pangalan . May variable ang isang halaga at zero o higit pa mga katangian . Ang mga katangian ay itinalaga gamit angmagpahayag builtin command.

Ang isang parameter ay nakatakda kung ito ay itinalaga ng isang halaga. Ang null string ay isang wastong halaga. Sa sandaling nakatakda ang isang variable, maaari itong i-unset lamang sa pamamagitan ng paggamit ngunset builtin command.

A variable maaaring italaga sa pamamagitan ng isang pahayag ng form: pangalan = halaga

Kung halaga ay hindi ibinigay, ang variable ay nakatalaga sa null string. Lahat mga halaga sumailalim sa pagpapalawak ng tilde, parameter at pagpapalawak ng variable, pagpapalit ng utos, pagpapalawak ng aritmetika, at pagtanggal ng pag-quote. Kung ang variable ay may nitointeger set ng katangian, pagkatapos halaga ay napapailalim sa pagpapalawak ng aritmetika kahit na ang paggamit ng $ ((…)) ay hindi ginagamit. Ang paghahati ng salita ay hindi ginaganap, maliban sa'$@' gaya ng ipinaliwanag sa ilalimMga Espesyal na Parameter. Ang pagpapalawak ng pathname ay hindi gumanap. Ang mga pahayag ng assignment ay maaari ring lumitaw bilang argumento samagpahayag, typeset, i-export, Basahin lamang, at lokal builtin commands.

Posisyonal na Parameter

A positional parameter ay isang parameter na tinukoy ng isa o higit pang mga digit, bukod sa solong digit na 0. Ang posisyon ng mga parameter ay itinalaga mula sa mga argumento ng shell kapag ito ay ginagamit, at maaaring ma-reassign gamit angitakda builtin command. Posisyonal na mga parameter ay hindi maaaring italaga sa mga pahayag ng pagtatalaga. Ang positional parameter ay pansamantalang pinalitan kapag ang isang function ng shell ay pinaandar.

Kapag ang isang posisyonal parameter na binubuo ng higit sa isang solong digit ay pinalawak, dapat ito ay nakapaloob sa tirante.

Mga Espesyal na Parameter

Ang shell ay may espesyal na mga parameter. Ang mga parameter na ito ay maaari lamang i-reference; Ang pagtatalaga sa kanila ay hindi pinahihintulutan.

  • *: Pinapalawak sa positional parameter, nagsisimula mula sa isa. Kapag ang pagpapalawak ay nangyayari sa loob ng double quotes, lumalawak ito sa isang salita na may halaga ng bawat parameter na pinaghihiwalay ng unang karakter ngIFS espesyal na variable. Yan ay, "$*" ay katumbas ng "$1 c $2 c ", kung saan c ay ang unang karakter ng halaga ngIFS variable. KungIFS ay hindi naka-set, ang mga parameter ay pinaghihiwalay ng mga puwang. KungIFS ay null, ang mga parameter ay sumali nang walang pumipigil sa mga separator.
  • @: Pinapalawak sa positional parameter, nagsisimula mula sa isa. Kapag ang pagpapalawak ay nangyayari sa loob ng double quotes, ang bawat parameter ay lumalawak sa isang hiwalay na salita. Yan ay, "$@" ay katumbas ng "$1' '$2"… Kapag walang posisyong mga parameter,"$@"at$@palawakin sa wala (sila ay aalisin).
  • #: Pinapalawak sa bilang ng positional parameter sa decimal.
  • ?: Pinapalawak sa kalagayan ng pipeline na pinakahuling executed foreground.
  • -: Pinapalawak sa kasalukuyang mga flag ng opsyon na tinukoy sa invocation, sa pamamagitan ngitakda builtin command o mga itinakda ng shell mismo, tulad ng-i pagpipilian.
  • $: Pinapalawak sa ID ng proseso ng shell. Sa isang () subshell, lumalawak ito sa ID ng proseso ng kasalukuyang shell, hindi ang subshell.
  • !: Lumalawak sa ID ng proseso ng pinakahuling executed na background (asynchronous) na utos.
  • 0: Lumalawak sa pangalan ng shell o shell script. Ito ay naka-set sa initialization ng shell. KungBash ay ginagamit sa isang file ng mga utos,$0 ay naka-set sa pangalan ng file na iyon. KungBash ay nagsimula sa-c opsyon, pagkatapos$0 ay nakatakda sa unang argument pagkatapos na maisakatuparan ang string, kung ang isa ay naroroon. Kung hindi, ito ay naka-set sa pangalan ng file na ginamit upang tumawagBash, tulad ng ibinigay ng argument zero.
  • _: Sa startup ng shell, itakda sa ganap na pangalan ng file ng shell o shell script na naisakatuparan bilang nakapasa sa listahan ng argumento. Sa dakong huli, lumalawak sa huling argumento sa naunang utos, pagkatapos ng pagpapalawak. Itatakda din sa buong pangalan ng file ng bawat command na isinagawa at inilagay sa kapaligiran na nailipat sa utos na iyon. Kapag tinitingnan ang mail, pinanatili ng parameter na ito ang pangalan ng mail file na kasalukuyang sinusuri.

Mga Variable ng Shell

Ang mga sumusunod na variable ay itinakda ng shell:

BASH: Pinapalawak sa buong pangalan ng file na ginamit upang tumawag sa halimbawa na ito ngBash.

BASH_VERSINFO: Ang isang readonly array na ang mga miyembro ay may hawak na bersyon ng impormasyon para sa halimbawang ito ng Bash. Ang mga halagang itinalaga sa mga miyembro ng array ay ang mga sumusunod:

  • BASH_VERSINFO 0: Ang pangunahing numero ng bersyon (ang palayain )
  • BASH_VERSINFO 1: Ang menor na numero ng bersyon (ang bersyon )
  • BASH_VERSINFO 2: Ang antas ng patch
  • BASH_VERSINFO 3: Ang build version
  • BASH_VERSINFO 4: Ang kalagayan ng release ( beta1, Halimbawa)
  • BASH_VERSINFO 5: Ang halaga ngMACHTYPE

BASH_VERSION: Lumalawak sa isang string na naglalarawan sa bersyon ng halimbawang ito ngBash.

COMP_CWORD: Isang index sa$ {COMP_WORDS} ng salitang naglalaman ng kasalukuyang posisyon ng cursor. Ang variable na ito ay magagamit lamang sa mga pag-andar ng shell na sinasabing sa pamamagitan ng mga programmable completing facility.

COMP_LINE: Ang kasalukuyang linya ng command. Ang variable na ito ay magagamit lamang sa mga function ng shell at mga panlabas na utos na sinasadya ng mga pasilidad ng Programmable na pagkumpleto.

COMP_POINT: Ang index ng kasalukuyang posisyon ng cursor na may kaugnayan sa simula ng kasalukuyang command. Kung ang kasalukuyang posisyon ng cursor ay nasa dulo ng kasalukuyang command, ang halaga ng variable na ito ay katumbas ng$ {# COMP_LINE}. Ang variable na ito ay magagamit lamang sa mga function ng shell at mga panlabas na utos na sinasadya ng mga pasilidad ng Programmable na pagkumpleto.

COMP_WORDS: Isang variable ng array na binubuo ng mga indibidwal na salita sa kasalukuyang linya ng command. Ang variable na ito ay magagamit lamang sa mga pag-andar ng shell na sinasabing sa pamamagitan ng mga programmable completing facility.

DIRSTACK: Isang array variable na naglalaman ng mga kasalukuyang nilalaman ng directory stack. Lumilitaw ang mga direktoryo sa stack sa pagkakasunud-sunod na ipinapakita sa pamamagitan ngdirs builtin. Ang pagtatalaga sa mga miyembro ng variable na ito ng array ay maaaring gamitin upang baguhin ang mga direktoryo na nasa stack, ngunit angpushd atpopd Ang mga builtin ay dapat gamitin upang magdagdag at mag-alis ng mga direktoryo. Ang assignment sa variable na ito ay hindi magbabago sa kasalukuyang direktoryo. KungDIRSTACK ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

EUID: Pinapalawak sa epektibong user ID ng kasalukuyang gumagamit, na-initialize sa startup ng shell. Ang variable na ito ay readonly.

FUNCNAME: Ang pangalan ng anumang kasalukuyang pag-andar ng shell function. Ang variable na ito ay umiiral lamang kapag ang isang shell function ay Isinasagawa. Mga assignment saFUNCNAME walang epekto at ibalik ang isang kalagayan ng error. KungFUNCNAME ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

GROUPS: Isang array variable na naglalaman ng listahan ng mga grupo kung saan ang kasalukuyang gumagamit ay isang miyembro. Mga assignment saGROUPS walang epekto at ibalik ang isang kalagayan ng error. KungGROUPS ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

HISTCMD: Ang numero ng kasaysayan o indeks sa listahan ng kasaysayan ng kasalukuyang utos. KungHISTCMD ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

HOSTNAME: Awtomatikong nakatakda sa pangalan ng kasalukuyang host.

HOSTTYPE: Awtomatikong naka-set sa isang string na natatanging naglalarawan ng uri ng makina kung saanBash ay nagsasagawa. Ang default ay depende sa system.

LINENO: Sa bawat oras na ang parameter na ito ay isinangguni, ang shell ay nagpapalit ng isang decimal na numero na kumakatawan sa kasalukuyang sequential line number (nagsisimula sa 1) sa loob ng script o function. Kapag hindi sa isang script o function, ang halaga na pinalitan ay hindi garantisado na maging makabuluhan. KungLINENO ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

MACHTYPE: Awtomatikong nakatakda sa isang string na ganap na naglalarawan sa uri ng system kung saanBash ay nagsasagawa sa karaniwang GNU cpu-company-system format. Ang default ay depende sa system.

OLDPWD: Ang nakaraang gumaganang direktoryo na itinakda ngcd utos.

OPTARG: Ang halaga ng huling argumento ng opsyon na naproseso nggetopts builtin command.

OPTIND: Ang index ng susunod na argument na naproseso nggetopts builtin command.

OSTYPE: Awtomatikong nakatakda sa isang string na naglalarawan sa operating system kung saanBash ay nagsasagawa. Ang default ay depende sa system.

PIPESTATUS: Isang variable ng array na naglalaman ng isang listahan ng mga halaga ng exit status mula sa mga proseso sa pinaka-kamakailan-na-executed foreground na pipeline, na maaaring maglaman lamang ng isang solong utos.

PPID: Ang ID ng proseso ng magulang ng shell. Ang variable na ito ay readonly.

PWD: Ang kasalukuyang gumaganang direktoryo na itinakda ngcd utos.

RANDOM: Sa bawat oras na ang parameter na ito ay isinangguni, isang random na integer sa pagitan ng 0 at 32767 ay nabuo. Ang pagkakasunud-sunod ng mga random na numero ay maaaring magsimula sa pamamagitan ng pagtatalaga ng isang halaga sa RANDOM. KungRANDOM ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

REPLY: Itakda sa linya ng input na nabasa ngbasahin builtin command kapag walang mga argumento ang ibinibigay.

SECONDS: Ang bawat oras na ang parameter na ito ay isinangguni, ang bilang ng mga segundo mula sa pagsisimbolo ng shell ay ibinalik. Kung ang halaga ay nakatalaga saSECONDS, ang halaga na ibinalik sa kasunod na mga sanggunian ay ang bilang ng mga segundo mula sa takdang-aralin at ang halaga na itinalaga. Kung SECONDS ay hindi naka-set, nawawala ang mga espesyal na katangian nito, kahit na pagkatapos ay i-reset ito.

SHELLOPTS: Isang listahan ng pinaghiwalay na colon ng mga opsyon na naka-enable na shell. Ang bawat salita sa listahan ay isang wastong argumento para sa-o opsyon saitakda builtin command. Ang mga pagpipilian na lumilitaw saSHELLOPTS ang mga iniulat na sa sa pamamagitan ngitakda -o. Kung ang variable na ito ay nasa kapaligiran kung kailanBash magsisimula, ang bawat pagpipilian ng shell sa listahan ay pagaganahin bago basahin ang anumang mga file ng startup. Ang variable na ito ay readonly.

SHLVL: Incremented ng isa sa bawat oras ng isang halimbawa ngBash ay nagsimula.

UID: Pinapalawak sa user ID ng kasalukuyang gumagamit, na-initialize sa startup ng shell. Ang variable na ito ay readonly.

Ang mga sumusunod na variable ay ginagamit ng shell. Sa ibang Pagkakataon,Bash nagtatalaga ng isang default na halaga sa isang variable; nabanggit ang mga kasong ito.

BASH_ENV: Kung ang parameter na ito ay nakatakda kung kailanBash ay nagsasagawa ng isang shell script, ang halaga nito ay binibigyang kahulugan bilang isang filename na naglalaman ng mga command upang magpasimula ng shell, tulad ng sa ~ / .bashrc . Ang halaga ng BASH_ENV ay napapailalim sa pagpapalawak ng parameter, pagpapalit ng utos, at pagpapalawak ng aritmetika bago isinalin bilang isang pangalan ng file.PATH ay hindi ginagamit upang maghanap para sa nanggagaling na pangalan ng file.

CDPATH: Ang path ng paghahanap para sacd utos. Ito ay isang listahan na pinaghihiwalay ng colon ng mga direktoryo kung saan ang shell ay naghahanap para sa mga patutunguhang direktoryo na tinukoy ngcd utos. Ang halimbawang halaga ay ".: ~: / Usr".

COLUMNS: Ginamit ngpiliin builtin command upang matukoy ang lapad ng terminal kapag naglilista ng mga listahan ng pagpili. Awtomatikong nakatakda sa pagtanggap ng isang SIGWINCH.

MAGAGAMIT: Isang variable ng array mula sa kung saanBash binabasa ang mga posibleng pagkumpleto na binuo ng isang function ng shell na sinasabing ng programmable completion facility.

FCEDIT: Ang default na editor para safc builtin command.

FIGNORE: Isang listahan ng mga suffix na pinaghihiwalay ng colon upang huwag pansinin kapag gumaganap ang filename completion. Ang isang filename na ang suffix ay tumutugma sa isa sa mga entry saFIGNORE ay hindi kasama mula sa listahan ng mga naitugmang filename. Ang halimbawang halaga ay ".o: ~".

GLOBIGNORE: Ang isang listahan na pinaghihiwalay ng colon ng mga pattern na tumutukoy sa hanay ng mga pangalan ng file na hindi papansinin sa pagpapalawak ng pathname. Kung ang isang filename na katugma ng isang pattern ng pagpapalaki ng pathname ay tumutugma din sa isa sa mga patternGLOBIGNORE, ito ay aalisin mula sa listahan ng mga tugma.

HISTCONTROL: Kung nakatakda sa isang halaga ng balewalain , mga linya na nagsisimula sa aspace Ang karakter ay hindi ipinasok sa listahan ng kasaysayan. Kung nakatakda sa isang halaga ng ignoredups , ang mga linya na tumutugma sa huling linya ng kasaysayan ay hindi ipinasok. Isang halaga ng ignoreboth pinagsasama ang dalawang pagpipilian. Kung hindi naka-set o kung nakatakda sa anumang ibang halaga kaysa sa itaas, lahat ng mga linya na binabasa ng parser ay naka-save sa listahan ng kasaysayan, napapailalim sa halaga ngHISTIGNORE. Ang function ng variable na ito ay pinalitan ng HISTIGNORE. Ang pangalawang at kasunod na mga linya ng isang command na multi-line compound ay hindi nasubok, at idinagdag sa kasaysayan anuman ang halaga ngHISTCONTROL.

KITA: Ang pangalan ng file kung saan naka-save ang kasaysayan ng command. Ang default na halaga ay ~ / .bash_history . Kung hindi naka-set, ang kasaysayan ng command ay hindi naka-save kapag lumabas ang isang interactive shell.

HISTFILESIZE: Ang maximum na bilang ng mga linya na nakapaloob sa file ng kasaysayan. Kapag ang variable na ito ay bibigyan ng halaga, ang file ng kasaysayan ay pinutol, kung kinakailangan, upang maglaman ng hindi hihigit sa bilang ng mga linya. Ang default na halaga ay 500. Ang file ng kasaysayan ay pinutol rin sa laki na ito pagkatapos na isulat ito kapag lumabas ang isang interactive shell.

HISTIGNORE: Isang listahan ng mga pattern na pinaghiwalay ng colon na ginagamit upang magpasya kung aling mga command line ang dapat ma-save sa listahan ng kasaysayan. Ang bawat pattern ay naka-angkla sa simula ng linya at dapat tumugma sa kumpletong linya (walang pahiwatig '*'ay idinagdag). Ang bawat pattern ay nasubok laban sa linya pagkatapos ng mga tseke na tinukoy ngHISTCONTROL ay inilalapat. Bilang karagdagan sa normal na mga pattern ng pagtutugma ng pattern ng shell, '&'tumutugma sa nakaraang linya ng kasaysayan. '&'maaaring makatakas gamit ang isang backslash; ang backslash ay aalisin bago subukan ang isang tugma. Ang pangalawang at kasunod na mga linya ng isang command na multi-line compound ay hindi sinusuri at idinagdag sa kasaysayan anuman ang halaga ngHISTIGNORE.

HISTSIZE: Ang bilang ng mga utos na dapat tandaan sa kasaysayan ng command. Ang default na halaga ay 500.

HOME: Ang direktoryo ng tahanan ng kasalukuyang gumagamit; ang default na argumento para sacd builtin command. Ang halaga ng variable na ito ay ginagamit din kapag nagsasagawa ng pagpapalawak ng tilde.

HOSTFILE: Naglalaman ng pangalan ng isang file sa parehong format bilang / etc / hosts na dapat basahin kapag ang shell ay kailangang kumpletuhin ang isang hostname. Ang listahan ng mga posibleng pagkumpleto ng hostname ay maaaring mabago habang tumatakbo ang shell; sa susunod na pagkumpleto ng hostname ay tinangka pagkatapos mabago ang halaga,Bash Nagdaragdag ang mga nilalaman ng bagong file sa umiiral na listahan. Kung HOSTFILE ay nakatakda, ngunit walang halaga,Bash nagtatangkang bumasa / etc / hosts upang makuha ang listahan ng mga posibleng pagkumpleto ng hostname. KailanHOSTFILE ay na-unset, ang listahan ng hostname ay na-clear.

IFS: Ang Internal Field Separator ay ginagamit para sa pagbaba ng salita pagkatapos ng paglawak at upang hatiin ang mga linya sa mga salita sabasahin builtin command. Ang default na halaga ay "''.

IGNOREEOF: Kinokontrol ang pagkilos ng isang interactive na shell sa pagtanggap ng isangEOF character bilang ang nag-iisang input. Kung nakatakda, ang halaga ay ang bilang ng magkakasunodEOF mga character na dapat na ma-type bilang unang mga character sa isang linya ng input bagoBash labasan. Kung ang variable ay umiiral ngunit walang numeric value o walang halaga, ang default na halaga ay 10. Kung wala ito,EOF Sumisimbolo ang dulo ng input sa shell.

INPUTRC: Ang filename para saBasahin ang linya startup file, pinapalitan ang default ng ~ / .inputrc .

LANG: Ginagamit upang matukoy ang kategorya ng locale para sa anumang kategorya na hindi partikular na pinili sa isang variable na nagsisimula saLC_.

LC_ALL: Binabago ng variable na ito ang halaga ngLANG at iba paLC_ variable na tumutukoy sa kategorya ng locale.

LC_COLLATE: Tinutukoy ng variable na ito ang pagkakasunud-sunod ng pag-collate na ginagamit kapag pinagsasama-sama ang mga resulta ng pagpapalawak ng pathname at tinutukoy ang pag-uugali ng mga ekspresyon ng hanay, mga klase ng pagkapantay, at mga collating na mga pagkakasunod-sunod sa pagpapalawak ng pathname at pagtutugma ng pattern.

LC_CTYPE: Tinutukoy ng variable na ito ang interpretasyon ng mga character at ang pag-uugali ng mga klase ng character sa loob ng expansion ng pathname at pagtutugma ng pattern.

LC_MESSAGES: Tinutukoy ng variable na ito ang locale na ginamit upang isalin ang mga double-quoted na string na sinundan ng isang$.

LC_NUMERIC: Tinutukoy ng variable na ito ang kategorya ng lokal na ginagamit para sa pag-format ng numero.

MGA LINES: Ginamit ngpiliin builtin command upang matukoy ang haba ng hanay para sa mga listahan ng pagpili ng pag-print. Awtomatikong nakatakda sa pagtanggap ng isang SIGWINCH.

MAIL: Kung ang parameter na ito ay naka-set sa isang pangalan ng file at angMAILPATH Ang variable ay hindi nakatakda,Bashnagpapaalam sa gumagamit ng pagdating ng mail sa tinukoy na file.

MAILCHECK: Tinutukoy kung gaano kadalas (sa mga segundo)Bash mga tseke para sa mail. Ang default ay 60 segundo. Kapag oras na upang suriin para sa mail, ang shell ay kaya bago ipakita ang pangunahing prompt. Kung ang variable na ito ay hindi naka-set o naka-set sa isang halaga na hindi isang numero na mas malaki kaysa sa o katumbas ng zero, hindi pinapagana ng shell ang pag-check ng mail.

MAILPATH: Ang isang listahan na pinaghihiwalay ng colon ng mga pangalan ng file na naka-check para sa mail. Ang mensahe na ipi-print kapag dumating ang mail sa isang partikular na file ay maaaring tinukoy sa pamamagitan ng paghihiwalay sa pangalan ng file mula sa mensahe na may '?'. Kapag ginamit sa teksto ng mensahe,$_ Lumalawak sa pangalan ng kasalukuyang mailfile. Halimbawa:

MAILPATH = '/ var / mail / bfox? Mayroon kang mail ": ~ / shell-mail?" $ _ Ay may mail! "'

Bash Nagbibigay ng isang default na halaga para sa variable na ito, ngunit ang lokasyon ng mga file na gumagamit ng mail na ginagamit nito ay depende sa system (/ var / mail /$ USER).

OPTERR: Kung nakatakda sa halagang 1,Bash nagpapakita ng mga mensahe ng error na nalikha nggetopts builtin command.OPTERR ay sinimulan sa 1 sa bawat oras na ang shell ay mahihingi o isang shell script ay pinaandar.

PATH: Ang path ng paghahanap para sa mga utos. Ito ay isang listahan ng mga colon-separated na direktoryo na kung saan ang shell ay naghahanap ng mga utos. Ang default path ay umaasa sa system at itinakda ng administrator na nag-i-installBash. Ang isang karaniwang halaga ay "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin:. ''.

POSIXLY_CORRECT: Kung ang variable na ito ay nasa kapaligiran kung kailanBash nagsisimula, ang shell ay pumapasok posix mode bago basahin ang mga file ng startup, na parang ang--posix ibinibigay ang opsyon na invoice. Kung nakatakda ito habang tumatakbo ang shell,Bash nagbibigay-daan posix mode na parang utos set -o posix ay pinaandar.

PROMPT_COMMAND: Kung nakatakda, ang halaga ay pinaandar bilang isang utos bago mag-isyu ng bawat pangunahing prompt.

PS1: Ang halaga ng parameter na ito ay pinalawak at ginamit bilang pangunahing prompt string. Ang default na halaga ay " s- v $''.

PS2: Ang halaga ng parameter na ito ay pinalawak na tulad ngPS1 at ginamit bilang pangalawang string prompt. Ang default ay "> ''.

PS3: Ang halaga ng parameter na ito ay ginagamit bilang prompt para sapiliin utos.

PS4: Ang halaga ng parameter na ito ay pinalawak na tulad ngPS1, at ang halaga ay nakalimbag bago ang bawat utosBash ipinapakita sa panahon ng isang pagpapatupad bakas. Ang unang karakter ngPS4 ay kinopya nang maraming beses, kung kinakailangan, upang ipahiwatig ang maraming antas ng indirection. Ang default ay "+ ''.

TIMEFORMAT: Ang halaga ng parameter na ito ay ginagamit bilang isang format na string na tumutukoy sa kung paano ang impormasyon ng pag-time para sa mga pipelines prefix na mayoras Ang nakalaang salita ay dapat na ipapakita. Ang % Ipinapakilala ng character ang isang pagkakasunod-sunod ng pagtakas na pinalawak sa isang halaga ng oras o iba pang impormasyon. Ang mga pagkakasunod-sunod ng pagtakas at ang kanilang mga kahulugan ay ang mga sumusunod. Ang mga brace ay tumutukoy sa mga opsyonal na bahagi.

  • %%: Isang literal%
  • % p l R: Ang lumipas na oras sa ilang segundo
  • % p l U: Ang bilang ng mga CPU na segundo na ginugol sa mode ng gumagamit
  • % p l S: Ang bilang ng mga CPU na segundo na ginugol sa mode ng system
  • % P: Ang porsyento ng CPU, na nakalkula bilang (% U +% S) /% R

Ang opsyonal p ay isang digit na tumutukoy sa katumpakan , ang bilang ng mga praksyonal na digit pagkatapos ng isang decimal point. Ang isang halaga ng 0 ay nagiging sanhi ng walang decimal point o bahagi upang maging output. Sa pinakamalawak na tatlong lugar pagkatapos matukoy ang decimal point; mga halaga ng p mas malaki sa 3 ay binago sa 3. Kung p ay hindi tinukoy, ang halaga 3 ay ginagamit.

Ang opsyonall tinutukoy ang mas mahabang format, kabilang ang mga minuto, ng form MM m SS . FF s. Ang halaga ng p tinutukoy kung o hindi ang bahagi ay kasama.

Kung hindi nakatakda ang variable na ito,Bash gumaganap na parang ito ay may halaga $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Kung ang halaga ay null, walang impormasyon ng tiyempo ay ipinapakita. Ang isang trailing newline ay idinagdag kapag ang format na string ay ipinapakita.

TMOUT: Kung nakatakda sa isang halaga na higit sa zero,TMOUT ay itinuturing bilang default na timeout para sabasahin builtin. Angpiliin Ang utos ay tinatapos kung ang input ay hindi dumating pagkataposTMOUT segundo kapag ang input ay nagmumula sa isang terminal.Sa isang interactive na shell, ang halaga ay binibigyang kahulugan bilang ang bilang ng mga segundo upang maghintay para sa input pagkatapos mag-isyu ng pangunahing prompt.Bash Tinatapos pagkatapos maghintay para sa ilang mga segundo kung ang input ay hindi dumating.

auto_resume: Kinokontrol ng variable na ito kung paano nakikipag-ugnayan ang shell sa user at kontrol ng trabaho. Kung ang hanay na ito ay naka-set, ang isang solong salita simpleng mga utos na walang redirections ay itinuturing bilang mga kandidato para sa pagpapatuloy ng isang umiiral na tumigil sa trabaho. Walang pinapayagang kalabuan. Kung mayroong higit sa isang trabaho na nagsisimula sa string type, napili ang trabaho na pinakahuling kamakailan. Ang pangalan ng isang tumigil na trabaho, sa kontekstong ito, ang command line na ginamit upang simulan ito. Kung nakatakda sa halaga eksaktong , ang string na ibinigay ay dapat tumugma sa pangalan ng isang natigil na eksaktong trabaho; kung nakatakda sa substring , ang kinakailangang string na kinakailangan upang tumugma sa isang substring ng pangalan ng isang tumigil na trabaho. Ang substring Ang halaga ay nagbibigay ng pag-andar na kahawig sa%? tagatukoy ng trabaho. Kung nakatakda sa anumang iba pang halaga, ang ibinigay na string ay dapat na isang prefix ng pangalan ng nahinto na trabaho; ito ay nagbibigay ng pag-andar kahalintulad sa% tagatukoy ng trabaho.

histchars: Ang dalawa o tatlong mga character na kumokontrol sa pagpapalawak ng kasaysayan at pagpapahintulot. Ang unang karakter ay ang Pagpapalawak ng kasaysayan character, ang character na nagpapahiwatig ng pagsisimula ng pagpapalawak ng kasaysayan, karaniwang '!'. Ang pangalawang karakter ay ang mabilis na pagpapalit character, na ginamit bilang takigrapya para sa pag-rerunning ang naunang utos na ipinasok, pagpapalit ng isang string para sa isa pa sa command. Ang default ay '^'. Ang opsyonal na pangatlong character ay ang character na nagpapahiwatig na ang natitira sa linya ay isang komento kapag natagpuan bilang unang karakter ng isang salita, karaniwang '#'. Ang komento ng character ng kasaysayan ay nagiging sanhi ng pagpapalit ng kasaysayan upang lumaktaw para sa natitirang mga salita sa linya. Hindi ito kinakailangang maging sanhi ng shell parser na gamutin ang natitirang linya bilang isang komento.

Mga Arrays

Bash Nagbibigay ng isa-dimensional na mga variable ng array. Anumang variable ay maaaring gamitin bilang isang array; ang magpahayag builtin ay tahasang ipinapahayag ang isang array. Walang pinakamataas na limitasyon sa laki ng isang array o anumang kinakailangan na ma-index ang mga miyembro o nakatalaga nang magkadikit. Ang mga array ay naka-index gamit ang integer at zero-based.

Ang isang array ay awtomatikong nilikha kung ang anumang variable ay nakatalaga sa paggamit ng syntax pangalan subscript = halaga . Ang subscript ay itinuturing bilang isang ekspresyon ng aritmetika na dapat suriin sa isang bilang na mas malaki kaysa sa o katumbas ng zero. Upang tahasang ipahayag ang isang array, gamitinipahayag -a pangalan . ipahayag -a pangalan subscript ay tinatanggap din; ang subscript ay hindi pinansin. Ang mga katangian ay maaaring tinukoy para sa isang array variable gamit angmagpahayag at Basahin lamang builtins. Nalalapat ang bawat katangian sa lahat ng mga miyembro ng isang array.

Ang mga array ay nakatalaga sa paggamit ng mga takdang-aralin na tambalan ng form pangala