Sh - Linux Command - Unix Command

NUMM

- GNU Bourne-Again SHell

SYNOPSIS

Brems [Optiounen] [Fichier]

DESCRIPTION

Bash ass e sh- kompatibel Kommando Sproochdialog, deen Kommandoen aus der Standardeingabe oder aus enger Datei ausliest. Bash ass och nëtzlech Features vu Korn a C Shells ( ksh a csh ).

Bash soll eng konforme Implementatioun vun der IEEE POSIX Shell and Tools Spezifikatioun (IEEE Working Group 1003.2) sinn.

OPTIONS

Niewent den eenzel Charakter Choix'en, déi an der Beschreiwung vum setin gebaute Kommando dokumentéiert sinn interpretéiert de Bach d'Optioune wann et opgeruff gëtt:

-c String

Wann d'- c- Optioun momentan ass, ginn Befehle vu String geliesen. Wann et Argumenter no der String ass , ginn se op d'Positional Parameter zugewielt, mat $ 0 .

-i

Wann d'- i Option ass, ass d'Shell interaktiv .

-l

Maacht Stroum aget wéi wann et als Login-Shell opgeruff gouf (kuckt INVOCATION ënnert).

-r

Wann d'- r Option ass, gëtt d'Schuel limitéiert (kuck RESTRICTED SHELL ).

-s

Wann d'-s-Optioun momentan ass oder ob keng Argumenter no der Optiounsveraarbechtung bleiwen, ginn Kommandoen aus der Standardeingriff geliesen. Dës Optioun erlaabt déi positional Parameter opzemaachen wann se eng interaktive Shell opruffen.

-D

Eng Lëscht vun all Duebelstëckele wéi virdrun vu $ gëtt op de Standardausgang gedréckt. Dëst sinn d'Stécker, déi ënner Sproochevictum ënnerleien, wann d'aktuell Lokalitéit net C oder POSIX ass . Dëst implizéiert d'Option -n ; keng Kommandoen ausgezeechent ginn.

[- +] O [ shopt_option ]

shopt_option ass eng vun de Schaloptiounen, déi vum Buedembedeschutz akzeptéiert ginn (kuckt SHELL BUILTIN COMMANDS ). Wann shopt_option dobäi ass, -Oet de Wäert vun dëser Optioun; + O freet en. Wann shopt_option net geliwwert gëtt, ginn d'Nimm an d'Wäerter vun den Shell-Optiounen, déi vu shopt akzeptéiert ginn, op d'Standardausgab eraus gedréckt. Wann d'Opfuerderung op + O ass , gëtt d'Ausgab an engem Format uginn, deen als Uwendung weider benotzt gëtt.

A - de Signal vun der Optioun un a weider wäert d'Optiounsveraarbechtung. All Argumenter nom der - ginn als Dateinumm an Argumenter behandelt. E Argument vun - entsprécht - .

Bash interpretéiert och eng Rei vu Charakteroptiounen. Dës Optiounen mussen op der Kommandozeeche sinn, ier déi eenzel Charakter Méiglechkeete géif erkannt ginn.

--dump-po-strings

Äquivalent zu -D , awer den Output ass am GNU- gettext po (portable object) Dateiformat.

--dump-Strings

Entsprécht -D .

--help

Informéiert eng Benotzungsdiskussioun op Standardausgang an exit erof.

--init- Datei

--rcfile Datei

Kommandéiert Befehle vun der Datei anstatt der Standard perséinlecher Initialisatiounsdatei ~ / .bashrc wann d'Shell interaktiv ass (kuckt ANERKREISUNG unten).

--Login

Entsprécht -l .

--noediting

Gitt d'GNU- Liesline- Bibliothéik net fir Kommandozeilen ze liwweren wann d'Shell interaktiv ass.

--noprofil

Liest net d'systemweit Startdatei / etc / profile oder eng vun den perséinlechen Initialisatiounsdateien ~ / .bash_profile , ~ / .bash_login , oder ~ / .profile . Par défaut gëtt de Bash dës Fichier geliest, wann se als Login-Shell opgeruff gëtt (kuckt INVOCATION hei ënnen).

--norc

Lies net a lafen d'Personaliséierungsdatei ~ / .bashrc wann d'Shell interaktiv ass. Dës Optioun ass par défaut wann d'Shell opgeruff as sh .

--positioun

Verännert de Verhalensmuster, bei deem d'Standardoperatioun vun dem POSIX 1003.2 Standard difféert ass mat dem Standard ( Posix Modus ).

- limitéierter

De Schuel gëtt limitéiert (kuckt BEZÉIEREN SHELLNEN ).

--rpm - erfuerderlech

Produzéiert d'Lëscht vu Fichieren, déi fir de Shell Skript ze féieren. Dëst bemierkt '-n' an ënnerlegt déi selwecht Begrenzung wéi d'Compile Time Fluchkontrollkontrolle ass; Backticks, [] Tester, an Evalë ​​si net analyséiert ginn, well e puer Abhängegoen kënne vermësst ginn. - verbose Äquivalent zu -v .

--version

Versioun Informatiouns-Informatioun fir dës Instanz vu Kasch op de Standardausgang a fuert dann erof.

ARGUMENT

Wann d'Argumenter nach der Optiounsveraarbechtung nach bleiwen, a weder d'- c nach de -s -Ougenequett gemaach huet, gëtt dat éischt Argument als den Numm vun enger Datei mat Shell-Kommandoen. Wann de Kasch ass op dës Manéier geluede gëtt, gëtt $ 0 op den Numm vum Fichier gesat, an déi positional Parameter op déi aner Argumenter festgeluegt. Bash liest Befehle vun dëser Datei aus, a gëtt of. Bash 'Ausstiegsstatus ass den Ausgangsstatus vum lescht Kommando, deen am Skript ausgeführt gëtt. Wa keng Befehle ausgezeechent ginn, gëtt de Status vun der Ausgabstate 0. Een Versuch gëtt zuerst gemaach fir de Fichier am aktuellen Verwalten ze maachen an a wann net fonnt gëtt, fënnt d'Shell d'Verzeichnisser an der PATH fir de Skript.

INVOCATIOUN

En Login Shell ass een deen eent éischt Zeechen vun Argument null ass - oder een mat der --Loginoptioun ugefaangen huet .

Eng interaktive Schuel gëtt mat ouni Argumenter net opgetruede gelooss an ouni d'Option -c , déi standard Input an Ausgab ass verbonne mat Terminals (as festgeluecht vun isatty (3)), oder ee mat der -i Optioun ugefaang. PS1 gëtt gesetzt an $ - inkludéiert i wann et breet interaktiv ass, datt en Shell Skript oder eng Startup-Datei fir dësen Staat ze testen.

Déi folgend Paragrafen beschreiwen wéi Bash seng Startdateie ausféiert. Wann eent vun de Fichier existéiert, awer net liesen kanns, klapert et e Feeler. Tildes ginn an Dateinamen erweidert, wéi et ënnert der Tilde Expansion an der Rubrik EXPANSION geschitt .

Wann de Kasch als eng interaktive Login Shell opgeruff gëtt, oder als net interaktive Shell mat der - Lignesoptioun , liest e puer Befehle vun der Datei / etc / profile , wann dës Datei existéiert. Nodeems Dir dës Datei gelies hutt, gesäit et u / bash_profile , ~ / .bash_login an ~ / .profile , an deem Sënn, a liest a Befehle vun der Éischt, déi existéiert an liest. De -noprofile- Optioun kann benotzt ginn, wann d'Shell ugefaang huet fir dës Verhalen ze verhënneren.

Wann e Log-Shell ausgëtt, léisst de Kaschiwwel d'Befehle vun der Datei ~ / .bash_logout liest , wann et existéiert.

Wann eng interaktive Schuel, déi net e Log-Shell ass beginn, gëtt et Kaschmir geliwwert a Befehle vun ~ / .bashrc , wann dës Datei existéiert. Dëst kann geheelt ginn andeems den --norc- Optioun benotzt. De - rcfile - Dateieoptrag mengt Stroum fir Befehre vu Fichier ze lueden an ausführen anstatt u / / basbas .

Wann de Kasch net interaktiv ass, fir e Shellskript ze féieren, zB kuckt d'Variable BASH_ENV an der Ëmwelt, erweidert säin Wäert, wann et da kënnt a benotzt den erweiderten Wäert wéi den Numm vun enger Datei fir ze liesen an auszeféieren . Bash behandelt wéi wann déi folgend Kommando ausgefouert goufen:

Wann d'[-n "$ BASH_ENV"]; dann. "$ BASH_ENV"; Fi

awer de Wäert vun der PATH- Variabel gëtt net benotzt fir no dem Dateinumm ze sichsetzen.

Wann de Kasch op den Numm sh invokéiert ass, versicht et de Startup Verhalens vun historesche Versioune vun der sou eng méiglechst méiglech ze maaachen, sou wéi och de POSIX Standard. Wann Dir als interaktive Login Shell ofgerappt gëtt oder eng net interaktive Shell mat der -login Optioun versprécht éischt Versioun vun / etc / profile a ~ / .profile , an där Reiefolleg. De -noprofile- Optioun kann benotzt ginn fir dës Verhalen ze verhënneren. Wann een als interaktive Shell mat dem Numm sh ëmgesat gëtt , kuckt de Bash fir déi variabel ENV , erweidert säi Wäert, wann et definéiert ass a benotzt den erweiderten Wäert wéi den Numm vun enger Datei fir ze liesen an auszeféieren. Wann e Shell opgeruff as sh verséchert keng Befehle vun anere Startdateien ze liest an auszeféieren, huet d'Option " rcfile " keen Effekt. Eng net interaktive Shell opgeruff mat dem Numm sh probéiert keng aner Startdateie ze liesen. Wann invocéiert als sh ass invitéiert de Posix- Modus no der Startdateie geliest.

Wann de Kasch am Posix- Modus ugefaang ass wéi och mat der Befehlszeilenoptioun op --posix , follegt de POSIX-Standard fir Startdateier. An dësem Modus erweideren interaktive Muschelen d' ENV Variablen an d'Befehle ginn aus der Datei geliest an ausgefouert vu sengem Numm den erweiderten Wäert. Keen aner Startupdate ginn gelies.

Bash versicht ze bestëmmen wann et vum Remote Shell Daemon lafen, normalerweis rshd . Wann de Bash definéiert ass se vun rshd gefeelt , liest a Befehle vun ~ / .bashrc , wann dës Datei existéiert an liest. Et wäert dat net maachen wann et opgeruff as sh . De -norc- Optrag kann benotzt ginn fir dës Verhalensmoossnamen z'ënnerstëtzen, an d'- rcfile- Optioun kann benotzt ginn fir eng aner Datei ze luule fir se gelies ze ginn, mee rshd riicht net allgemeng d'Shell mat dësen Optiounen op oder erlaabt se ze spezifizéieren.

Wann d'Shell mat der effektiven Benotzer (Grupp) id net mat der reeller Benotzer (Grupp) ID beginn, an der -p Option gëtt net geliwwert, keng Startdate ginn geliest, Shellfunktiounen sinn net vun der Ëmfro, der ShellOPTS Variabel, wann et an der Ëmwelt gëtt, gëtt ignoréiert an d'effektive Benotzer Id gëtt op déi richteg Benotzer ID gesat. Wann d'- p Option op invokéiert geliwwert gëtt, ass de Startup Verhalenssignal d'selwecht, awer d'effektive Benotzer Id gëtt net zréckgesat.

DEFINITIOUNEN

Déi folgend Definitioune ginn am ganzen Rescht vum Dokument benotzt.

eidel

E Weltraum oder Tab.

Wuert

Eng Sequenz vun Zeeche déi als eenzeg Eenheet vun der Shell betraff sinn. Och bekannt als Zeeche .

Numm

E Wuert, deen nëmmen aus alphanumeresche Charakteren an Ënnerscores besteet, an ufänkt mat engem alphabeteschen Charakter oder en Ënnerscore. Och Bezeechnung als Identifizéierer genannt .

Metacharakter

E Charakter, deen, wann net steet, Seele verbënnt. Een vun den folgenden:

| &; () <> Space Tab

Kontrolloperateur

Eng Notioun déi eng Kontrollfunktioun ausféiert. Et ass eng vun den folgenden Symboler:

|| & &&& ;; () |

RESERVED WORDS

Reservéiert Wierder si Wierder, déi eng speziell Bedeitung hunn fir d'Schuel. Déi folgend Wierder ginn als reservéiert erkannt wann net onkloereg oder entweder den éischte Wuert vun engem einfache Kommando (kuckt de SHELL GRAMMAR ) oder d'drëtt Wuert vun engem Fall oder fir Kommando:

!! Et ass ewech wat etac fi gemaach ass, wann se an der gewielt gi bis datt {{time} [[]]

SHELL GRAMMAR

Einfache Kommandë

Een einfache Kommando ass eng Sequenz vun optionalem variabele Verzeechnungen, gefollegt vu bloem-getrennten Wierder a Redirektiounen, a vun engem Kontrolloperateur beendet. Dëst éischt Wuert spezifizéiert de Kommando ausgefouert ze ginn an ass als Argument null. Déi verloossene Wierder ginn als Argumenter fir den opgerufften Kommando iwwerginn.

De Rembourgement vun engem einfachen Kommando ass säin Ausstiegsstatus, oder 128+ n wann de Kommando duerch Signal n geklomm ass.

Pipelines

Eng Pipeline ass eng Sequenz vun engem oder méi Befehle getrennt vum Charakter | . De Format fir eng Pipeline ass:

[ Zäit [ -p ]] [! ] Kommando [ | Kommando2 ...]

De Standardausgang vum Kommando gëtt iwwer e Päif mat der Standarde vum Command2 verbonne . Dëse Connexioun gëtt viru méi wéi déi vum Befehl uginn ugestrieft (kuckt REDIRECTION ).

Wann de reservéierten Wuert ! eng Pipeline virgesi gëtt den Ausgabestatus vun der Pipeline awer de logesche NOTO vum Ausstiegsstatus vum leschte Kommando. Anescht wéi ass de Status vun der Pipeline den Ausgabestatus vum leschte Kommando. De Shell waart op all Kommandoen an der Pipeline ze korrigéieren, ier Dir e Wäert zeréckschéckt.

Wann d' Zäit reservéiert Wuert eng Pipeline virgeet, déi verfaasst esou wéi d'Benotzer an d'Systemzäit duerch hir Ausféierung verbraucht ginn, wann d'Pipeline terminéiert. D'Option -p ändert den Outputformat op déi vun POSIX. D' TIMEFORMAT- Variabel kann op e Format Zeechen festgeluede ginn, wéi d'Timing-Informatioun ugewisen soll ginn; kuckt d'Beschreiwung vun TIMEFORMAT ënnert Shell Variablen .

Jidder Command an enger Pipeline ass als separate Prozedur (dh an enger Skala) ausgezeechent.

Lists

Eng Lëscht ass eng Sequenz vun enger oder méi Pipelines, getrennt vun engem vun de Betreiber ; , & , && , oder || , an optional ofschléissend vun engem vun ; , & , oder .

Vun deene Lëschten Operatoren, && an || hunn gläiche Viraussetzung, gefollegt duerch ; an &, déi gläich Aart.

Eng Sequenz vun engem oder méi Newlines kann an enger Lëscht statt an e Semikolon sinn fir Kommandoen ze begrenzen.

Wann e Kommando vum Kontrollbetreiber terminéiert gëtt, féiert d'Shell de Kommando am Hannergrond an enger Skala. De Shell waart net fir de Kommando ze féieren, an de Retourstatus ass 0. Kommandéiert getrennt vun engem ; ginn sequentiell ausgefouert; De Shell waart op all Kommando ze schloen. De Status vum Réck ass den Ausgabestatus vum leschte Kommando ausgefouert.

D'Kontrollbetreiber && a || an der Lescht a Lëschten an ODER Lëschten respektiv. An AND Lëscht huet d'Form

command1 && command2

Kommando2 gëtt ausgeführt wann an a wann dann, command1 gëtt e Ausgabstatus vun Null zréck.

An ODER Lëscht huet d'Form

command1 || command2

Kommando2 gëtt ausgeführt wann et just gëtt, wann command1 en Exit status ouni Null gëtt. De Réckzuch vum Status vun AND an ODER ass den Ausgabestatus vum leschte Kommando an der Lëscht.

Compound Commands

E Compound Kommando ass eng vun den folgenden Virschléi:

( Lëscht )

Lëscht gëtt am Ënnerschriwwe gemaach. Variabel Zuelungen an Gebaierdeeler, déi d'Ëmfeld vun der Muschel beaflossen, bleiwen net no der Ausféierung vum Kommando ofgeschloss. De Status vum Réck ass den Ausgabestatus vun der Lëscht .

{ Lëscht ; }}

Lëscht gëtt einfach an der aktueller Shell-Ëmfeld ausgezeechent. D'Lëscht muss mat enger Newline oder Semikolon ofgeschloss ginn. Dëst ass bekannt als Gruppemanagement . De Status vum Réck ass den Ausgabestatus vun der Lëscht . Bedenkt datt am Géigesaz zu den Metacharakter ( a ) , { a } Reservéierunge waren a muss opfalen, wou e reservéiert Wuert ass erlaabt ze erkennen. Well se kee Wuertesproch verursaachen, mussen se vun der Lëscht vun de Whitespace getrennt sinn.

(( Ausdrock ))

Den Ausdrock gëtt gemat d'Reglemente vun der ARITHMETIK EVALUZEWANNEN evaluéiert . Wann de Wäert vum Ausdrock net no Null ass, gëtt den Rückgängstatus 0; Anescht wéi de Rückgängstatus ass 1. Dëst ass exakt entspriechend " Ausdrock ".

[[ Expressioun ]]

Gitt e Status vun 0 oder 1 of, jee no der Auswertung vum bedingten Ausdruck vun der Expression . Ausdréck sinn aus de Primärschichten, déi hei ënnendrënner ënnert BETRIEB EXPRESSIONS beschriwwe ginn . D'Spaltverdeelung an d'Verdeelung vum PathName ginn net op d'Wierder vun de [[ an ]] gemaach . Ausweitung, Parameter a variabelen Expansioun, arithmetesch Expansioun, Kommandosubstitut, Prozessersubstitut a Zuchdeelung ginn ausgeführt.

Wann d'Operator == an ! = Operatoren benotzt ginn, gëtt d'Zeechen op déi riets Säit vum Operator als Muster betraff a entsprécht mat de Regelen, déi hei ënnen ënner Muster Matching beschriwwe ginn . Den Rückgängewert ass 0 wann d'Zeechen entsprécht oder net mat dem Muster entsprécht an 1 anescht. Jidder Deel vum Muster kann zitéiert sinn, fir ze drängen datt se als String passen.

Ausdréck kënne vereinfacht ginn mat den folgenden Operatoren, déi an d'Ofbau vun der Prioritéit steet:

( Ausdrock )

Gidd den Wäert vum Ausdrock . Dëst kann benotzt ginn fir d'normale Prioritéit vun de Betreiber ze iwwerschreiden.

!! Ausdrock

Gleeft wann d' Ausdrock falsch ass.

expression1 && expression2

Wéini wann ni expression1 an expression2 Wierklech sinn.

expression1 || Ausdréck2 Wahr wann entweder expression1 oder expression2 gëllt.

Déi && a || D'Operatoren bewähren d' expression2 net, wann de Wäert vum Ausdruck1 genuch ass fir den Rückgabewert vum ganzen bedingten Ausdruck ze bestëmmen.

fir den Numm [ am Wort ]; Lëscht ze maachen ; gemaach

D'Lëscht vun de folgenden Aussoen erweidert a generéiert eng Lëscht vu Saachen. De variabelen Numm gëtt op all Element vun dëser Lëscht op en Neits gespaart, an all Kéier gëtt d' Lëscht ausgezeechent. Wann d ' Wuert net ausgeliwwert gëtt, fuerdert de Kommando d' Lëscht eemol fir all Positionsparameter, déi gesat gëtt (kuckt PARAMETEREN ). De Status vum Réck ass den Ausgabestatus vum leschte Kommando deen ausgefouert gëtt. Wann d'Expansioun vun den Elementer, déi op Resultater vun enger eidel Lëscht zoustëmmen, keng Kommandoen ausgeführt ginn, an de Retourstatus ass 0.

(( expr1 ; expr2 ; expr3 )); Lëscht ze maachen ; gemaach

Eischtens gëtt d'arithmetesch Expression expr1 gemooss wéi d'Reglementer, déi an der ARITHMETIK EVALUZESERESCHICHT definéiert sinn, evaluéiert . De arithmetesche Expression expr2 gëtt dann ëmmer erëm ausgezeechent bis datt se op Null evaluéiert. All Kéier expr2 evaluéiert un net-Nullwert, gëtt d' Lëscht ausgezeechent an d'arithmetesch Expression3 expr3 evaluéiert. Wann all Ausgruewen weg ausgeliwwert ass, verännert se wéi wann et evaluéiert op 1. De Retourwert ass den Ausgabestatus vum leschte Kommando an der Lëscht , déi ausgeführt oder falsch ass, wann eng vun den Ausdrécker ongëlteg ass.

wielt Numm [ am Wuert ]; Lëscht ze maachen ; gemaach

D'Lëscht vun de folgenden Aussoen erweidert a generéiert eng Lëscht vu Saachen. De Set vun erweiderten Wierder gëtt op de Standardfehler gedréckt, déi all virdrun un enger Zuel ass. Wann d ' Wuert net ausgeliwwert gëtt, sinn déi positional Parameter gedréckt (kuckt PARAMETEREN ). De PS3- Prompt gëtt dann ugewisen an eng Zeil aus der Standardeingriff geliest. Wann d'Linn aus enger Zuel ass, déi zu enger vun de bezeechten Wierder entsprécht, da gëtt de Wäert vum Numm op dat Wuert gesat. Wann d'Linn lee gëtt, ginn d'Wierder a Prompt erneiert. Wann EOF geliest gëtt, fëllt de Kommando of. All aner Wäert gelies dat Numm gëtt op Null gesat. D'Linn liest ass am variabelen REPFL gespaart . D' Lëscht gëtt duerch no all Auswiel ausgezeechent datt bis e Brembefehl ausgezeechent gëtt. Den Ausgabestatus vu Wielt ass den Ausgabestatus vum leschte Kommando aus der Lëscht oder ouni Null, wann keng Befehle ausgezeechent ginn.

D' Wuert am Pattern [[() Muster [ | Muster ]

E Fallbefehl bitt zuerst d' Wuert erof, an probéiert et mat all Muster am Zesummenhank mat der selwechter Matching Regelen wéi fir Pathname Expansioun ze späicheren (siehe PathName Expansioun hei ënnen). Wann e Match fonnt gëtt, gëtt déi korrespondéiert Lëscht ausgeführt. Nom éischten Match sinn keng spéider Matcher versicht. Den Ausstiegsstatus ass null, wann keen Muster entsprécht. Sinn et et de Status vun der Ausgab vum leschte Kommando aus der Lëscht .

wann List ; dann ze liesen; [ Lëscht vun der Lëscht ; dann ze liesen ; ] ... [ aner Lëscht ; ] fi

De Fall wann d' Lëscht ausgezeechent gëtt. Wann hiren Ausstiegsstatus null ass, gëtt d' Lëscht dann ausgezeechent. Soss gëtt all Elif Lëscht ugewandt , a wa seng Ausstiegsstatus null ass, gëtt déi entspriechend dann Lëscht ausgezeechent an de Kommando ofgeschloss. Soss gëtt d' aner Lëscht ausgeführt, wann et elo ass. Den Ausstiegsstatus ass de Status vun der Ausgab vum leschte Kommando ausgefouert ginn, oder Null wann keng Konditioun getest gëtt.

laang Lëscht ; Lëscht ze maachen ; gemaach

bis zur Lëscht ; Lëscht ze maachen ; gemaach

Déi laangweis Kommando laacht ëmmer déi do Lëscht esou aus, wéi de leschte Kommando an der Lëscht eng Ausgabstat vu null gëtt. De bis de Kommando ass identesch mam sougenannten Kommando, ausser datt de Test negéiert ass; déi Lëscht gëtt ausgeführt esou laang wéi de leschte Kommando an der Lëscht e Status net ouni Null zréckgitt. Den Ausstiegsstatus vun der Zäit an bis d' Befehle ass den Ausgabestatus vum lescht Lëscht vum Kommando ausgefouert ginn, oder null, wann näischt gemaach gëtt.

[ function ] name () { Lëscht ; }}

Dëst definéiert eng Funktioun mam Numm . Den Kierper vun der Funktioun ass d' Lëscht vun den Kommandoen tëscht {a}. Dës Lëscht gëtt ausgeführt wann e Numm nom Numm genannt gëtt. Den Ausstiegsstatus vun enger Funktioun ass de Ausgangszustands vum leschte Kommando am Kierper. (Kuckt d' FUNCTIONS un .)

COMMENTAIREN

An enger net interaktive Shell, oder eng interaktive Shell, an där d' interaktive Kommissiounen op den shopt builtin aktivéiert sinn (kuckt SHELL BUILTIN COMMANDS ), gëtt et mam Wuert beginnt mat dem Wuert # an datt all aner aner Zeechen op dës Linn ignoréiert ginn. Eng interaktive Schuel ouni d' Aktivitéit interaktiv_comments aktivéiert erlaabt net Kommentaren. D'Optioun interactivement gëtt standardiséiert an interaktive Muschelen.

QUOTING

De Quotéierten ass benotzt fir d'Besonnesch Bedeitung vu verschiddene Zeechen a Wierder zu der Shell ze entfernen. Quoting kann benotzt ginn, fir speziell Behandlungen fir speziell Zeechen ze verschléissen, fir reservéiert Wierder ze verhënneren datt se als Sëtz erkannt gëtt an datt d'Parameter Expansioun verhënnert gëtt.

Jiddwer vun den Metacharieuren, déi hei uewen ofgelenkt sinn, sinn definéiert an d'Schuel gespaart a mussen zitéiert sinn, wann et sech selwer vertriede muss.

Wann d'Commandgeschichte Expansiounsanlagen benotzt ginn, sinn d' Geschicht Expansioun Charakter, normalerweis ! , muss zitéiert sinn fir d'Geschicht Expansioun ze verhënneren.

Et ginn dräi Iwwersetzungsmechanismen: de Fluchfiguren , eenzel Zitater an doppelte Zitater.

Eng net zitéiert Backslash ( \ ) ass de Fluchzeechen . Et behält den literalen Wäert vum nächste Charakter deen déi folgend ass, mat Ausnam vun . Wann e \\ Newline> Paart erscheint an de Réckblat net selwer zitéiert gëtt, gëtt d' \ als Zeilverhältnisser behandelt (dh se gëtt aus dem Inputstream ofgespäichert an effektiv ignoréiert).

Deen Zeechen an eenzel Zitater zouhëlt den literalen Wäert vun all Charakter an de Zitater. Een eenzegen Zitat ka net tëschent eenzel Zitater sinn, och wann e virum Backlash assuréieren.

D'Zeechekennzeichen an doppelte Zitaten beweegend de wuertwiertleche Wäert vun alle Charaktere vum Quotienten, mat Ausnam vun $ , ` a. D'Zeeche $ a ` behalen hir besonnesch Bedeitung innerhalb Doppele Quotes. De Backslash behält seng speziell Bedeitung nëmme wann eent vun engem vun den folgenden Zeechen ass: $ , ` , " , \ oder . Een Duebelzoustand kann innerhalb doppelter Zitaten zitéiert ginn, wéi et virgeschloen ass mat engem Backslash.

Déi speziell Parameter * an @ sinn besonnesch Bedeitung, wann an Dopingzorten (kuckt PARAMETEREN ).

Worte vun der Form $ ' String ' ginn speziell behandelt. D'Wuert erweidert fir String , mat Réckslash-entscaped Figuren ersetzt wéi déi vum ANSI C Standard ass. Backslash Fluchsequenzen, wann dobäi, decodéiert wéi folgend:

\ a

Alarm (Glock)

\ b

Réckspace

\ e

enger Eklat

\ f

Formuléieren

\ n

nei Linn

\ r

Wagon zeréckzeschecken

\ t

horizontal Tab

\ v

vertikal Tab

\\

Backslash

\ '

eenzegt Zitat

\ nnn

den aacht Bit Charakter, deem seng Wäertklang den Oktalwäert nnn (1 bis 3 Zifferen)

\ x HH

den aacht Bit Charakter, deem seng Héicht ass de Hexadezimaler Wert HH (een oder zwee Hexzifferen)

\ c x

e Kontroll- x- Zeechen

Den erweiderten Resultat ass eenzelen zitéiert, wéi wann d'Dollarschäin net präsent waren.

Eng Doppelequote, déi virdrun mat engem Dollar Zeechen ( $ ) virgesi war, verursaacht déi String iwwersat ginn no dem aktuellen Gebuertsgemeng. Wann déi aktuell Locale C oder POSIX ass , gëtt den Dollarzeichen ignoréiert. Wann de String iwwersat gëtt a ersat gëtt, gëtt de Ersatz dupe-zitéiert.

PARAMETEREN

En Parameter ass eng Organisatioun déi Wäerter speichert. Et kann e Numm , eng Ziffer oder eng vun den speziellen Charaktere sinn, déi hei ënnendrënner ënner Spezialparameter genannt ginn . Fir d'Hänn vun der Schuel, ass eng Variabel e Parameter, dee mat engem Numm bezeechent gëtt . Eng Variabel ass e Wäert a Null oder méi Attributer . Attributer ginn uginn, déi gebauter Befehls deklaréiren ze gesinn (kuckt hei ënnendrënner an SHELL BUILTIN COMMANDS ).

Een Parameter gëtt festgeluegt wann et e Wäert ass. De Null String ass e gültege Wäert. Wann eng Variabele gesaat ass, kann et just net ofgeschalt ginn ouni de gebaute Gebaier Kommando ze benotzen (kuckt SHELL BUILTIN COMMANDS ).

Eng Variabel kann duerch eng Ausso vum Formulaire zougewisen ginn

Numm = [ value ]

Wann de Wäert net gegeben gëtt, gëtt d'Variabel den Zoll String zugewielt. All Wäerter ginn erweidert, Expérience, Parameter a variabelen Expansioun, Kommando ofgetrennt, arithmetesch Expansioun an Zitatdefizit (siehe EXPANSION méi). Wann d'Variabel säin Integer Attribut ass, dann ass de Wäert ofhängeg vun der arithmetescher Expansioun, och wann d'$ ((...)) Expansioun net benotzt gëtt (kuck Arithmetesch Expansioun ënnert). D'Spaltungssproochung gëtt net gemaach, ausser "$ @", wéi et ënner " Special Parameters " erklärt gëtt. Erweiterung vum PathName gëtt net gemaach. Auszuelungserklärungen kënnen och als Argumenter fir d' Erklärung , den Typ , d' Export , d' readonly an d' lokal gebaute Kommandoen erscheinen.

Positional Parameter

Eng Positiver Parameter ass e Parameter, deen duerch e puer oder méi Zifferen ze bezeechne gëtt, wéi déi eenzel Ziffer 0. Positiv Parameter ginn vun der Argumenter vum Shell wann se opgeruff ginn, a kënnen opgemaach ginn mat dem setin gebauten Kommando. Positiven Parameteren däerfen net mat Zueleausschléi uginn. D'Positiounsparameter ginn temporär ersat ginn, wann eng Shellfunktion ausgeführt gëtt (kuckt FUNCTIONSEN ).

Wann e Positivparameter aus méi wéi enger Ziffer erweidert ass erweidert, muss se an Hänn beaflosst ginn (vgl. EXPANSIONnop ).

Spezial Parameter

De Shell behandelt verschidde Parameteren speziell. Dës Parameter kënnen nëmmen referenzéiert sinn; Ausléisung ass hinnen net zougelooss.

*

Erweidert op déi Positional Parameter, vun enger. Wann d'Expansioun bënnt innerhalb doppelter Zitaten, erweitert se zu engem eenzegen Wuert mat dem Wäert vun all Parameteren, getrennt vum éischte Charakter vun der IFS Spezial Variabel. Dat ass " $ * " entspriechend " $ 1 c $ 2 c ... ", wou c den éischte Charakter vum Wäert vun der IFS Variabel ass. Wann d' IFS net ofgeschloss ass, sinn d'Parameteren duerch Leerplazen ofgetrennt. Wann d' IFS net null sinn, ginn d'Parameteren ouni intervenéiere Separatoren verbonnen.

@

Erweidert op déi Positional Parameter, vun enger. Wann d'Expansioun banne méi dauert zitéiert, gëtt all Deparameter zu engem gesonden Wuert erweidert. Dat ass " $ @ " ass entspriechend " $ 1 " " $ 2 " ... Wann keng Positional Parameter " $ @ " an $ @ erof ginn un näischt (dh se ginn ofgeschaaft).

#

Erweidert op d'Zuel vun Positional Parameteren an Dezimal.

?

Erweidert op den Zoustand vun de lescht laagt Viraussiicht Pipeline.

- Déi

Erweidert op déi aktuell Optiounsmarken wéi op invokéieren, duerch de setin gebaute Kommando oder déi vun der Shell selwer gesat (wéi d'- i ).

$

Erweidert op d'Prozedur ID vun der Shell. An enger () Skizod, erweitert de Prozess-ID vun der aktueller Shell, net de Skelett.

!!

Erweidert op d'Prozedur ID vun de lescht lafen Hannergrond (asynchron) Kommando.

0

Erweidert den Numm vum Shell- oder Shellskript. Dëst ass op Schellinitialiséierung gesat. Wann de Kasch op eng Datei vun Kommandoen opgeruff gëtt, gëtt $ 0 op den Numm vun der Datei gesat. Wann de Kaschof mat der -c geännert ass , da gëtt $ 0 op d'éischt Argument festgeluecht nodeems de String ausgezeechent gëtt, wann een elo ass. Sinn et op den Dateinumm festgeluegt, dee benotzt gëtt fir opzemaachen, wéi et Argument null gëtt.

_

Beim Shell-Startup, setze den absolute Dateinumm vum Shell- oder Shell-Skript aus wéi an der Argument Lëscht verginn. Duerno erweitert de leschte Argumenter vum leschte Command no Expandë. Also gitt op den kompletten Dateinumm vun all Kommando ausgefouert a plazéiert an d'Ëmfeld exportéiert ginn. Beim Iwwerpréifen vum mail hält dësen Parameteren den Numm vum E-Mail-Date.

Shell Variablen

Déi folgend Variablen ginn vun der Shell gesat:

BASH

Erweidert op de kompletten Dateinumm, deen benotzt gouf fir dës Instanz ze liesen.

BASH_VERSINFO

Eng readonly array Variabel, vun deenen d'Member Versiounsinformatioun fir dës Informatioun vu Bash behalen . D'Wäerter, déi de Membere vun der Array ass ginn ass:

BASH_VERSINFO [ 0]

D'Haapt Versiounsnummer (d' Verëffentlechung ).

BASH_VERSINFO [ 1]

Déi kleng Versioun Nummer (d' Versioun ).

BASH_VERSINFO [ 2]

De Patch Level.

BASH_VERSINFO [ 3]

D'Build-Versioun.

BASH_VERSINFO [ 4]

De Release Status (zB Beta1 ).

BASH_VERSINFO [ 5]

De Wäert vun MACHTYPE .

BASH_VERSION

Erweidert op eng Zeecheklaratioun déi d'Versioun vun dëser Instanz vu Kasch huet .

COMP_CWORD

COMP_LINE

Déi aktuell Kommandozeilung. Dës Variabel ass nëmmen an de Shellfunktiounen an externe Kommandoen, déi vun den programmierbarer Fertegungsanlage opgeruff ginn (kuckt programmabel ofgeschloss ).

COMP_POINT

COMP_WORDS

Eng Array Variab (kuckt Arrays hei ënnendrënner) aus den eenzel Wierder an der aktueller Kommandozeil. Dës Variabel ass nëmme méiglech op Shellfunktiounen opgrond vun den programmierbaren Vervollständner (kuckt Programmable Komplettioun ).

DIRSTACK

Eng Array Variab (kuckt Arrays hei ënnendrënner) déi den aktuellen Inhalt vun de Verzeichnisstack enthalen. Verëffentleche sinn am Stack an der Reiefolg déi se vun der Dir opgebaut hunn . Zuzemaachen vun Membere vun dëser Array Variabelen ginn benotzt fir d'Verëffentlechungen scho am Stack ze änneren, mä d' pushd a popd Konstrukturen mussen benotzt ginn fir d'Verknüpfungen ze addéieren an ze bidden. Ausgedeelt op dës Variabel ännert Äert Verwalten net änneren. Wann DIRSTACK net ofgeschaaft gëtt, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

EUID

Erweidert op d'effektiv Benotzerkennung vum aktuellen Benotzer, initialiséierte beim Shell-Startup. Dës Variabel ass readonly.

FUNCNAME

Den Numm vun all Moment ausféieren Shell Funktioun. Dës Variabel existéiert nëmme wann eng Shellfunktioun ofgeschalt ass. De FUNCNAME ass ze beaflosse gelooss a gëtt e Feelerstatus zréckginn. Wann FUNCNAME net ofgeschaaft gëtt, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

GRUPPEN

Eng Array Variabel mat der Lëscht vun Gruppen, vun deenen de Benotzer dee Member ass. Zuordnungen zu GROUPS hunn keen Effekt uginn an e Feelerstatus zréckginn. Wann GROUPS net ofgeschaaft gëtt, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

HISTCMD

D'Historesch Nummer oder den Index an der Geschichtlëscht vum aktuellen Kommando. Wann HISTCMD net ofgeschnidden ass, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

HOSTNAME

Automatesch op den Numm vum aktuellen Host gespaart.

HOSTTYPE

Automatesch festgeluecht op e String, deen e ganz eegent den Typ vu Maschinn beschriwwe gëtt, op deenen de Kasch net ausgefouert gëtt. De Standard ass systemabhäng.

LINENO

All Kéier wann dësen Parameter referenzéiert ass, ersetzt d'Shell eng Dezimalzuel, déi d'aktuell Sequenzzeilenzuel representéiert (mat 1) an engem Skript oder senger Funktioun representéiert. Wann net am Skript oder der Funktioun, de Wäert ersat ass net garantéiert sinn sinn sinnvoll ze sinn. Wann LINENO net ofgeschaaft gëtt, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

MACHTYPE

Automatesch festgeluecht op e String, deen de Systemtyp beschreift, op deem de Kasch net ausgefouert gëtt, am Standard GNU CPU-Firma- Systemformat. De Standard ass systemabhäng.

OLDPWD

De fréieren Aarbechtsaccord deen vum Kommando cd festgeluecht gouf.

OPTARG

De Wäert vum läschte Optiouns Argument vun de Gebaier erstallt Kommando veréiert (kuckt SHELL BUILTIN COMMANDS ).

OPTIND

Den Index vum nächste Argument, deen duerch den Gebaier gebauter Kommando veraarbecht ginn ass (kuckt SHELL BUILTIN COMMANDS ).

OSTYPE

Automatesch op eng Saach gesat, déi de Betribssystem beschreift, wou de Kasch net ausgefouert gëtt. De Standard ass systemabhäng.

PIPESTATUS

Eng Array Variabelen (siehe Arrays hei ënnendrënner) mat enger Lëscht vun exit Status Wäerter vun de Prozesser an der neischt kuerzfristeg ausgezeechent Viraussetzungspipeline (déi e bësse eenzeg Kommando enthalen).

PPID

D'Prozedur ID vum Parel Shell. Dës Variabel ass readonly.

PWD

De aktuellen Aarbechtsverwaltungsgeriicht wéi vum Kommando cd festgeluecht .

RANDOM

All Kéier wann dësen Parameter referenzéiert ass, gëtt eng zimlech Integer tëscht 0 an 32767 generéiert. D'Sequenz vun Zufallsnummeren kann initialiséiert ginn andeems ee Wäert op RANDOM ass . Wann RANDOM net ofgeschaaft gëtt, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

ERKLÄRT

Setzt d'Zeil vun der Input déi vun dem Buedem gebaut ass, wann keng Argumenter geliwwert ginn.

SECONDS

All Kéiers wann dësen Parameter referenzéiert ass, gëtt d'Zuel vun de Sekonne zanter de Schueler invokéiert zréck. Wann e Wäert nom SECONDS zugewielt gëtt , gëtt de Wäert op d'spéider Referenzen zréckgezunn. D'Zuel vun de Sekonnen ass zënter der Beliichtung plus dem nominéierte Wäert. Wann SECONDS net uerdentlech ass, verléiert seng speziell Eegeschafte, och wann et duerno zréckgesat gëtt.

SHELLOPTS

Eng Diloun ass getrennt Lëscht vun Aktivéiert Shell-Optiounen. All Wuert an der Lëscht ass e gülteg Argument fir d'Option -o op de setin gebaute Kommando (kuck SHELL BUILTIN COMMANDS ). D'Optiounen, déi an SHELLOPTS ersat ginn, sinn déi wéi beruffe wéi -o . Wann dës Variabel an der Ëmwelt ass wéi beim Bash beginn, gëtt all Shell-Opsiicht an der Lëscht aktivéiert, éier d'Startdateie liesen. Dës Variabel ass nëmmen gelies.

SHLVL

Incrementéiert vun engem all Kéier wann eng Explosioun begleed ass.

UID

Erweidert op d'Benotzer ID vun dem aktuellen Benotzer, initialiséiere beim Shell-Startup. Dës Variabel ass readonly.

Déi folgend Variablen ginn vun der Shell benotzt. A ville Fäll ass e Lach mat engem verännerleche Standardwert; Dës Fälle si méi no uewen notéiert.

BASH_ENV

Wann dësen Parameter opgesat gëtt, wann de Kaschkript e Shell-Skript ausfëllt, gëtt säi Wäert als Dateie mam Sproochbefehl interpretéiert fir d'Shell ze initialiséieren, wéi an / / .bashrc . De Wäert vum BASH_ENV gëtt mat der Parameter Expansioun, Kommandabsetzung a vun der arithmetescher Expansioun ausgesat, ier se als Dateiformat interpretéiert gëtt. PATH ass net benotzt fir no de Sichend Dokument ze sichen.

CDPATH

De Sichwee fir de cd Kommando. Dëst ass eng kolonentrennend Lëscht vun Dossieren, an där d'Shell fir Destinéerdekoratioune kuckt, déi vum CD- Kommando spezifizéiert sinn. Ee Probe Wäert ass ".: ~: / Usr".

KOLONN

Benotzt vum selektéiert gebauter Kommando fir d'Klemmbreedung ze bestëmmen wann d'Auswiel vun Listen beaarbecht ass. Automatesch op e kritt vun engem SIGWINCH.

COMPREPLY

Eng Array Variabel vu wéi e Kasch ass déi méiglech Aarbechten, déi vun enger Shell-Funktioun generéiert ginn, déi vun der programmierbarer Vervollständnerin opgeriicht gouf (vgl. Programmable Completion below).

FCEDIT

De Standard-Editor fir den fc builtin command.

FIGNORE

Eng Kolonentrennung vun Suffixelen fir ze ignoréieren beim Ausbezuelen vun Dateinaméierung (kuckt VIRLIESEN LINN ). E Fichiernam deen hir Suffix mat engem vun den Einträg an FIGN kënnt mat der Lëscht vun den entspriechenden Dateinumm ausgeschloss sinn. Ee Probe-Wäert ass ".o: ~".

GLOBIGNORE

Eng Kolonentrennung vun Muster, déi de Satz vun Dateinamen definéieren, déi duerch PathName expansioun ignoréiert ginn. Wann e Dateinumm mat engem PathName-Expansionsmuster och mat engem vun den Muster zu GLOBIGNORE mat engem Match mat der Lëscht vun de Mätscher ewechgeholl gëtt.

HISTCONTROL

Wann Dir op e Wäert vun ignorespace gesat gëtt , Zeilen déi beginn mat engem Space Zeechen op d'Lëscht net geschitt ginn. Wann Dir op e Wäert vun der Ignoratioun gezeechent gëtt , sinn Zeilen, déi mat der leschter Geschicht Zeile passend sinn, net aginn. Ee Wäert vu Ignoréierbléck kombinéiert déi zwou Optiounen. Wann net uset oder op all aner Wierder festgeluegt ass wéi all déi uewe gëtt all Zeilen, déi vum Parser gelies hunn, op der Histoire Lëscht gespaart, ënnert dem Wäert vun HISTIGNORE . Dës Funktiounsfunktioun gëtt vun HISTIGNORE ersetzt . Déi zweet a spéider Linnen vun engem Multi-Line-Compound-Kommando ginn net gepréift an ginn un d'Geschicht hinzegéréiert, onofhängeg vum Wäert vun HISTCONTROL .

HISTFILE

Den Numm vun der Datei, an där d'Commandgeschicht gerett gëtt (kuckt HISTORY n.). De Standardwert ass ~ / .bash_history . Wann d'Nettoetze gëtt, gëtt d'Commandgeschicht net gespuert wann eng interaktive Shell ofgespaart gëtt.

HISTFILESIZE

Déi maximal Zuel vu Linnen an der Geschichtsdatei. Wann dës Variabel e Wäert ass, gëtt d'Versiounsdatei verkierzt, wann et néideg ass, net méi wéi déi Zuel vu Linnen ze enthalen. De Standardwert ass 500. D'Versiounsdatei gëtt och op dës Gréisst trunkelt, nodeems et geschriwwe gëtt wann eng interaktive Shell ofgesi gëtt.

HISTIGNORE

Eng Kolonentrennung vun Muster déi benotzt gëtt fir ze entscheeden, wéi d'Kommandozeilen op der Histoire Lëscht gespaart sinn. All Muster ass am Ufank vun der Linn verankert a muss mat der kompletter Linn passen (kee implizit ` * 'ass ofgebrach). All Muster ze testen géint d'Linn no der Kontroll vun HISTCONTROL ginn applizéiert. Niewt dem normalen Shell-Muster passenden Zeechen, ` & 'mat der fréierer Geschichtlinn. ` & 'kënnt entlooss mat engem Backslash; De Réckschlëssel ass ofgeschnidden ier e versicht e Match ze versichen. Déi zweet an d'spéider Linnen vun engem Multi-Line-Compound-Kommando ginn net geprotert a si gi vun der Geschicht unzeginn, egal wéi de Wäert vun HISTIGNORE .

HISTSIZE

D'Unzuel vun Kommandoen fir ze erënneren an der Kommandogeschicht (kuck HËTTREIWELN ënnen). De Standardwert ass 500.

HOME

D'Haaptverdeel vum aktuellen Benotzer; De Standard Argumenter fir de Befreiung cd builtin. De Wäert vun dëser Variabele gëtt och beim Ausféiere vun enger Expansioun benotzt.

HOSTFILE

Enthält den Numm vun engem Fichier an deem selwechte Format wéi / etc / hosts , dee geluede sollt ginn, wann d'Shell e HostName vervollstännegt. D'Lëscht vu eventuellen Hostnam Ofschloss kann ofgeännert ginn wann de Shell lästeg ass; Déi nächst Kéier gëtt d'Hostname ofgeschloss wann de Wäert geännert gëtt, fënnt de Bash d'Inhalter vun der neier Datei op d'existent Lëscht. Wann HOSTFILE festgeluegt ass, awer kee Wäert huet, versprécht et / etc / hosts ze liesen fir d'Lëscht vu eventuellen Hostnamen ofgeschloss ze kréien. Wann HOSTFILE net ofgeschaaft gëtt, gëtt d'Hostnamme Lëscht geläscht.

IFS

Den internen Feldtrennungsapparat deen benotzt gëtt fir d'Spaltungen no der Expansioun ze spilléieren an d'Zeilen ze verloossen an d'Wierder mat dem geliwwert gebaute Kommando. De Standardwert ass `` ''.

IGNOREEOF

Kontrolléiert d'Aktioun vun enger interaktiver Shell op e Kommen vun engem EOF Charakter als eenzeg Input. Wann set, ass de Wäert d'Nummer vun de kommende EOF- Zeechen, déi als éischt Zeechen op enger Inputzeil gezeechent ginn, ier de Strof kënnt. Wann d'Variabel existéiert, awer net e numeresche Wäert huet oder kee Wäert huet, ass de Standardwerter 10. Wann et net gëtt, heescht d' EOF den Enn vun der Input to the Shell.

INPUTRC

De Dateinumm fir de Startlëscht- Startdatei, iwwer de Standard vu ~ / .inputrc (kuckt VIRLIESEN LINN ).

LANG

Benotzt fir d'Locale Kategorie fir eng Kategorie ze bestëmmen déi net spezifesch mat enger Variabel mat LC_ gewielt gëtt .

LC_ALL

Dës Variabel üblech ass de Wäert vun der LANG an all aner LC_ Variablen déi eng Kategorie vu Gebaier a spezifizéieren.

LC_COLLATE

Dës Variabel bestëmmt d'Zuelungsaquitatioun déi benotzt gëtt bei der Sortéierung vun de Resultater vun der Pathname Expansioun, a bestëmmt d'Verhalen vu Reegenausdrécke, Äquivalenzklassen a kollatiséiert Sequenzen an der Pausname Expansioun a mat Muster passend.

LC_CTYPE

Dës Variabel bestëmmt d'Interpretatioun vun Charakteren an de Verhalens vun Charakterklassen an der Pausname Expansioun a mat Muster passend.

LC_MESSAGES

Dës Variabel bestëmmt d'Gebuertsregioun, déi benotzt gëtt fir duplizéiert Strings virun engem Iwwersetz ze iwwersetzen.

LC_NUMERIC

Dës Variabel bestëmmt d'Klassesch Kategorie, déi fir Nummerformatéierung benotzt gëtt.

LINES

Benotzt vum selektéiert gebauter Kommando fir d'Spaltlänge fir d'Auswiel vun der Auswiel vum Dokument ze bestëmmen. Automatesch op e kritt vun engem SIGWINCH.

MAIL

Wann dësen Parameter op en Dateinumm gesat gëtt an d'Variable MAILPATH net gespaart ass, informéiert de Kascht de Benotzer vun der Arrivée vun der Mail an der spezifizéierter Datei.

MAILCHECK

Gitt fest, wéi oft (an zweeter Sekonn) Scheech Kontrast fir E-mail. De Standard ass 60 Sekonnen. Wann et Zäit ass fir d'Mail ze checken, mécht d'Shell sou dat virun der Primärdéngscht. Wann dës Variabel net ofgeschnidden ass oder op e Wäert gëtt deen net eng Zuel vu méi wéi oder null ass, kann d'Shell e Mailkontrolle opmaachen.

MAILPATH

Eng Kolonentrenn Lëscht vu Dateinamen, déi fir E-Mail gepréift ginn. D'Noriicht, déi gedréckt gëtt wann e Message an engem bestëmmte Fichier geläit, kann ugewise ginn andeems de Dateinumm vum Message mat engem `? 'Getrennt gëtt. Wann Dir am Text vun der Noriicht benotzt, gëtt $ _ op den Numm vum aktuellen Mailfile erof. Beispill:

MAILPATH = '/ var / mail / bfox? "Dir hutt e Mail": ~ / shell-mail? "$ _ Huet mail!"'

Bash liefert e Standardwert fir dës Variabel, awer de Standort vun den E-Mail-Dateien, déi se benotzt, ass systemabhäng (zB / var / mail / $ USER ).

OPTERR

Wann de Wert 1 festleet, weist de Kaschier Fehlermeldungen déi aus dem Gebaier gebaute Kommando erstallt ginn (kuckt SHELL BUILTIN COMMANDS ). OPTERR gëtt all Kéier initialiséiert op 1 wann d'Shell opgeruff gëtt oder e Shellskript ausgezeechent gëtt.

PATH

Den Sichwee fir Kommandoen. Et ass eng Doppelpartie vun Verzeichnisser, an där d'Hülle Kommandoe kuckt (siehe COMMAND AUSSERUNGSNUMMER ). De Standardpfad ass systemabhängig a gëtt vum Administrateur festgeluegt, deen e Lach installéiert. Ee gemeinsame Wäert ass `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT

Wann dës Variabel an der Ëmwelt ass wéi de Startchampionnaire ass, fiert d'Shell e Posix-Modus a léisst d' Startdateie liesen, wéi wann d' Oppositioun opruffen. Wann et opgeriicht ass wann d'Shell lästeg ass, kritt de Kaschier Posix-Modus , wéi wann de Kommando set -o Posix ausgezeechent gouf.

PROMPT_COMMAND

Wann de Set gespaart gëtt, gëtt de Wäert als Kommando ausgefouert fir virum éischte primitive Prompt.

PS1

De Wäert vun dësem Parameter gëtt erweidert (kuckt FORTMOUCHEN ) a benotzt als primärer Prompt String. De Standardwert ass `` \ s- \ v \ $ ''.

PS2

De Wäert vun dësem Parameter gëtt erweidert wéi bei PS1 a benotzt als sekundärer Prompt String. De Standard ass `` > ''.

PS3

De Wäert vun dësem Parameter gëtt als Enquêtement fir de Select Kommando benotzt (kuck SHELL GRAMMAR ).

PS4

De Wäert vun dësem Parameter gëtt erweidert wéi mat PS1 an de Wäert gëtt gedréckt bis all Kommando Bash bei enger Exekutioun Spure weist. Deen éischten Charakter vun PS4 gëtt méi oft benotzt, wann et néideg ass, méi Niveauen vun Indirektioun ze weisen. De Standard ass `` + ''.

TIMEFORMAT

De Wäert vun dësem Parameter gëtt als Format Zeechentriede benotzt fir d'Timinginformatioun fir Pipelines ze benotzen mat dem ze reservéierten Wuert ze weisen. De % -Character stellt eng Fluchsequenz un, déi op e Zäitwiessel oder aner Informatioun erweidert gëtt. D'Fluchtsequenzen an hir Bedeitungen sinn déi folgend. de Klameren d'optional Portiounen.

%%%

E wuertwiert % .

% [ p ] [l] R

D'Zäit verfaasst a Sekonne.

% [ p ] [l] U

D'Zuel vun de CPU-Sekondär am Userbetrieb verbraucht.

% [ p ] [l] S

D'Zuel vun de CPU-Sekunden am Systemmodus verbrauchen.

% P

De Prozentsaz CPU, berechtegt als (% U +% S) /% R.

D'optional p ass eng Ziffer, déi d' Präzisioun ugepasst huet , déi Zuel vu Bruchzimsen nom Dezimalpunkt. E Wäert vun 0 ass keng Dezimalstelle oder Bruch als Ausgab. Déi meescht dräi Plazen nom Dezimalpunkt kann uginn ginn; Wäerter vu p méi wéi 3 gi geännert ginn. 3. Wann p net spezifizéiert gëtt, gëtt de Wäert 3 benotzt.

De fakultativ L ass e méi laang Format uginn, inklusive Minuten, vun der Form MM m SS . FF s. De Wäert vu p befaalt un, ob d'Fraktioun mat abegraff ass.

Wann dës Variabel net opgesat gëtt, fënnt de Kascht als ob dat de Wäert huet $ '\ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS' . Wann de Wäert net null ass, gëtt keng Timing Informatioun angezeigt. Eng nei Säulenlinn gëtt hinzeginn wann de Formatstéck ugewise gëtt.

TMOUT

Wann een op ee Wäert méi wéi Null gesat gëtt, gëtt TMOUT als Default-Zäitlimité fir den Lieser gebaut behandelt. De Select- Kommando endet wann d'Input net no TMOUT Sekonnen kënnt wann d'Input vu engem Terminal kënnt. An enger interaktiver Héichschoul gëtt de Wäert als d'Zuel vun de Sekonnen interpretéiert fir d'Input ze warten nodeems de primärer Prompt ausgezeechent gouf. Bash beoptraagt ​​nom Waard fir dës Zuel vu Sekonnen wann d'Input net kommt.

auto_resume

Dës Variabel kontrolléiert wéi d'Shell interagéiert mat dem Benotzer an de Kontroll vum Job. Wann dës Variabel gespaart gëtt, ginn eenzel Wuert einfachen Kommandoen ouni Reglementer als Kandidaten behandelt fir d'Widderhuelung vun enger existéierter Aarbechtsplaz ze behalen. Et gëtt keng Zweeheet genuch; Wann et méi wéi eng Job mam Begrëff mat der Zeecheknapp ass, gëtt de Beschreiwung zënter kuerzem ugeschnappt. Den Numm vun enger gestoppt Aarbecht, an dësem Kontext ass d'Kommandozeileng benotze fir se ze starten. Wann de Wäert genee ass , muss d'Strie versuergt mat dem Numm vun enger ofgeschlosser Aarbecht genau matenee passen; Wann Dir op Substring gesat ass , muss d'Strie versuergt mat engem Substring vum Numm vun enger gestoppt Aarbecht ze passen. De Substring ass e Funktional wéi dem %? Jobbezeechnung (kuckt JOB CONTROL ënner). Wann Dir op en anere Wäert setzen, da muss d'Liwwerkette e Präfix vun enger gestopptes Aarbecht hunn; Dëst ass Funktionalitéit analog zu der % Aarbechtsidentifizéierter.

Histcheren

Déi zwee oder dräi Charakteren, déi d'Geschichtserdexpansion a Token ze kontrolléieren (kuckt HISTORY EXPANSION ënnert). Den éischten Charakter ass d' Geschicht Expansiounsfigur , de Charakter deen de Start vun enger Geschichtexpansion signaliséiert, normalerweis " ! '. Déi zweet Zeechen ass de schnelle Substitutionssekretär , deen als Këscht benotzt gëtt fir de virdrun Kommando z'änneren, andeems ee String fir eng aner am Kommando ersetzt. Standard ass ` ^ '. De optionalen drëtten Charakter ass de Charakter deen weist datt de Rescht vun der Linn e Commentaire gëtt, wann hien als éischt Zeeche vun engem Wuert, normalerweis " # " ass. Den Historique Kommentar Zeech ännert d'Geschicht Auswiesselung fir déi verloossene Wierder op der Linn. Et heescht net onbedéngt datt de Shell-Parser de Rescht vun der Linn als Kommentar ze behandelen.

Arrays

Bash proposéiert e-dimensionale Variable Varianten. All Verännerung kann als Array benotzt ginn; de Buedem deklaréiert explizit eng Rei. Et gëtt keng maximal Limitatioun vun der Gréisst vun engem Array, nach keng Ufuerderungen, déi Membere indizéieren oder zougeruff ginn. D'Arrays ginn duerch all Integer indizéiert an null.

Een Array gëtt automatesch ugeluecht datt all Variabel den SyntaxName [ subscript ] = value ass . De Souscript gëtt als arithmetesch Ausgruew behandelt, déi op eng Zuel gréisser oder null sinn. Fir e kloer Array ze deklaréieren, benotzt d' Erklärung -a Numm (kuckt SHELL BUILTIN COMMANDS ). Deklaratioun - e Numm [ subscript ] ass och acceptéiert; den Abonnement gëtt ignoréiert. Attribute kënnen fir eng Varianten recherchéiert ginn, déi d' Declaratioun an d' readonly gebaut hunn . All Attribut gëlt fir all Member vun engem Array.

D'Arrays ginn mat verbesserungsspezifesche Bicherzuele vum Formular Numm = ( Wäert 1 ... Wäert n ) , wou all Wäert vun der Form [ subscript ] = String ass . Nëmmen String ass verlaangt. Wann d'optional Klammern an Ënnerschriwwe geliwwert ginn, gëtt dësen Index zugewierkt; En anere Fall ass den Index vum zougewisen Element ass de leschten Index vun der Erklärung plus eng. Indexéierung fänkt un Null zréck. Dës Syntax gëtt och vun der Declaratioun ugeholl . Individuelle Array Elementer ginn dem Numm [ subscript ] = Syntax, déi uewen agefouert gouf, zougewielt ginn.

De Buedem gebaut gëtt benotzt fir Arrays ze zerstéieren. Den Numm vun der Unbestëmmung [ Abonnement ] zerstéiert d'Array Element am Index-Index. Netnumm Numm , wou Numm en Array ass oder net onbedéngt Numm [ subscript ], wou Souscript ass * oder @ ass , de ganze Grupp rem geläscht.

D' Deklaratioun , lokal a readonly Konstruktiounen akzeptéieren d' Aa optional fir e Grupp ze spezifizéieren. Déi liesen installéiert acceptéiert e -a Option, fir eng Lëscht vu Wierder ze liesen vun der Standardeingabe op e Grupp. De Satz a deklaréieren d' Gebaierdefinale fir d'Array Wierder op eng Manéier, déi se erlaabt sinn, erëmgewielt ze ginn.

EXPANSION

D'Expansioun gëtt op der Kommandozeilung ausgeführt, nodeems se se a Wierder gedeelt gouf. Et gi 7 Arten Expansioun gemaach: Spannungsofhängegkeet , Ausdehnung , Parameter a variabelen Expansioun , Kommandosubstitut , arithmetesch Expansioun , Wortspaltung , a Pathname Expansioun .

D'Reihenfolge vun Expansiounen ass: Spannungsofhängegkeet, Ausdehnung, Parameter, variabel a arithmetesch Expansioun a Kommando-Substitutioun (geschitt an der rietser an der rietser Säit), der Spaltespaltung, an der Pfadnamenerweiterung.

Op Systemer déi et ënnerstëtzen, gëtt et eng weider Expansioun: Prozessersubstitution .

Brace Expansion

Brace Expansioun ass e Mechanismus, mat deem eventuell Sträitwierder generéiert ginn. Dëse Mechanismus ass ähnlech mat der Pensiounsofhängegkeet , mä d'Dateinamen generéiert net existéieren. Muster fir d'Spannung erweidert ginn d'Form vun enger optionaler Preambel , gefollegt vu enger Serie vu getrennten Strings tëschent engem Paar Klammern, gefollegt mat engem optionalen PostScript . De Préambel ass op all String an de Klammern befestegt, an de PostScript gëtt dann un all Resultat gehuewen, an erweidert lénks a riets.

Brace Expansiounen kënnen verschachtelt sinn. D'Resultater vun all expandéierter Saach sinn net sortéiert; lénks op riets ass preservéiert. Zum Beispill gëtt eng { d, c, b } e an 'ade ace abe' erweidert.

Brace Expansioun ass viru all aner Expansioun gemaach ginn, an all Zeeches speziell fir aner Expansiounen ginn am Resultat behaalen. Et ass strikt textuell. Bash léisst keng syntaktesch Interpretatioun un de Kontext vun der Expansioun oder den Text tëschent de Klameren.

Dëst Konstrukt gëtt normalerweis als Këscht benotze wann de gemeinsame Präfix vun de Saiten generéiert ass méi laang wéi an dësem Beispill:

mkdir / usr / local / src / bash / {al, nee, dist, bugs}

oder

Geck root /usr/{ucb/{exeded},lib/{ex?.?*,how_ex}}

Brace Expansioun léisst e klengt Inkompatibilitéit mat historeschen Versiounen vu sh . sh behandelt d'Ouverturen net oder schließt Klammern speziell wann se als Deel vun engem Wuert ufräifen, a bewahrt se an der Ausgab. Bash removes Klammeren aus Wierder als Konsequenz vu Spannungserweiterung. Zum Beispill gëtt e Wuert, deen als Datei {1,2} geschitt ass, an der Ausgab identesch. Selwëcht Wuert ass erausgaang wéi file1 file2 no Expansioun duerch de Bash . Wann eng strikt kompatibel mat sh erwënscht ass, starten de Bash mat der + B- Option oder de Spuerexpansion mat der + B- Optioun op de Set gesteet (kuckt SHELL BUILTIN COMMANDS ).

Tilde Expansioun

Wann e Wuert mat engem onbestëmmten Tilde-Charakter beginnt (` ~ '), ginn all d'Charaktere virun der éischter netquotéiert Schlëssel (oder all Zeechen, wann et kee Quatsch) ass en als tilde-Präfix . Wa keng vun den Zeechen am Tilde-Präfix zitéiert sinn, ginn d'Charaktere vum Tilde-Präfix no der Tilde als méiglech Loginnumm behandelt . Wann dësen Loginnumm den Zong String ass, gëtt den Tilde ersat duerch den Wäert vum Parameteren HOME . Wann HOME ass net ofgeschnidden ass, gëtt d'Heemverzeichnis vum Benotzer deen d'Shell ausgefouert huet ass ersetzt. Sinn den tilde-Präfix duerch d'Heemechtswiese vun der spezifizéierter Loginername ersat.

Wann de Tilde-Präfix e '~ +' ass, ersetzt de Wäert vun der Shell-variabele PWD den Tilde-Präfix. Wann de Tilde-Präfix e '~ -' ass, gëtt de Wäert vun der Shell-Variabel OLDPWD , wann et gesat gëtt, ersetzt. Wann d'Zeechen no der Tilde am Tilde-Präfix aus enger Ziffer N bestehen, déi geännert mat engem '+' oder engem `- 'ofgeschnidden ass, gëtt de Tilde-Präfix mat dem entspriechende Element aus dem Verzeichnisstapel ersat, wéi ett géif ginn vun der dirs builtin opgeruff mam Tilde-Präfix als Argument. Wann d'Zeechen no der Tilde am Tilde-Präfix aus enger Zuel ouni eng führend "+" oder `- 'besteet, gëtt d'' + 'ugeholl.

Wann de Login name net valid ass oder d'Tildexpansion fällt, gëtt d'Wuert onverännert.

Jidder variabel Beliichtung ass nogekuckt fir onbestëmmte Tilde-Präfixe direkt no a : oder = . An deene Fäll sinn och d'Expansioun ausgezeechent. Duerfir kann een Dateinamen mat Tilden an Aegermaachen mat PATH , MAILPATH , an CDPATH benotzen , an d'Shell weist den erweiderten Wäert un.

Parameter Expansioun

Den Zeechen ` $ 'féiert Parameter Expansioun, Kommandéierung oder arithmetesch Expansioun. De Parameternoun oder Symbol ze erweideren ass vläit an Klameren ëmgeleet ginn, wat fakultativ ass, awer fir déi Variabel ze schützen, déi aus Zeechen direkt direkt duerno erweidert ginn ass, wat als Deel vum Numm interpretéiert konnt ginn.

Wann d'Klammeren agesat ginn, ass d'passende Schräggott den éischten " } " net vun engem Réckschësse oder innerhalb enger zitéierter Zeecheklaach entlooss an net innerhalb enger embedded arithmetescher Expansioun, Kommandosubstitut oder Parameter Expansioun.

De Wäert vum Parameter gëtt ersetzt. D'Klameren si gefrot, wann de Parameter e Positionsparameter mat méi wéi enger Ziffer ass oder wann de Parameter no engem Charakter gefollegt gëtt, deen net als Deel vum Numm bezeechent gëtt.

A jidder Fall vun de Fäll ass ënnerschiddlech Wuert zouhëlt, d'Parameter Expansioun, Kommandozuatioun an arithmetesch Expansioun. Wann Dir net d'Substringerweiterung ausféiert, Kaschtestellen fir e Parameter deen net ofgeschalt gouf oder net; de Kolon Resultater auszetauschen an e Test just fir e Parameter deen net ofgeschnidden ass.

Standardgréisst benotzen . Wann de Parameter net onbedéngt oder net ass, gëtt d'Expansioun vum Wuert ersetzt. Soss gëtt de Wäert vum Parameter ersetzt.

Assignéieren Standard Default . Wann de Parameter net ongëlteg oder net ass, gëtt d'Expansioun vum Wuert dem Parameter zugewielt. De Wäert vum Parameter gëtt dann ersat. Positiv Parameteren an spezielle Parameteren däerfen net op dës Manéier zugewiesen ginn.

Fehlerméisseg wann näischt oder Ungesat ass . Wann de Parameter net oder net onbedéngt ass, gëtt d'Expansioun vum Wuert (oder e Message un deem Effekt, wann Wuert net present ass) op de Standardfehler geschriwen an d'Shell, wann et net interaktiv ass, of. Soss gëtt de Wäert vum Parameter ersetzt.

Benotzt Alternativ Wäert . Wann de Parameter net null oder ongeschéckt gëtt, gëtt näischt ersetzt, soss gëtt d'Expansioun vum Wuert ersetzt.

Erweidert op d'Nimm vun Variabelen, déi d'Numm vun engem Präfix beginn, gëtt ofgetrennt duerch den éischte Charakter vun der IFS Spezial Variabel.

D'Längt an Zeeche vum Wäert vum Parameter gëtt ersetzt. Wann de Parameter * oder @ ass , gëtt de Wäert ersetzt déi Zuel vun Positionalparameter. Ass de Parameter e Grupp vun Numm, deen vun * oder @ agefouert gëtt , ass de Wénkel a Substitut d'Nummer vun den Elementer am Array.

D' Wuert gëtt ausgebaut fir e Muster ze produzéieren sou wéi an der Pensiounsausgab. Wann d'Muster mat dem Ufank vum Wäert vum Parameter entsprécht, dann ass d'Resultat vun der Expansioun den erweiderten Parameterparameter mat dem kuersteste passende Muster (de `` # '' case) oder de längsten passende Muster (de `` ## ' Fall) geläscht. Wann de Parameter @ oder * ass , gëtt d'Musterentfernung uginn fir all Positionsparameter am Wee an d'Expansioun ass déi Resultat Lëscht. Wann de Parameter eng Array Variabelen déi mat @ oder * ënnerschriwwe gëtt , gëtt d'Musterentfernung operéiert fir all Member vun der Array am Wee an d'Expansioun ass d'Resultat Lëscht.

D' Wuert gëtt ausgebaut fir e Muster ze produzéieren sou wéi an der Pensiounsausgab. Wann d'Muster mat engem verdeelten Deel vum erweiderten Parameter ofgeleesst , dann ass d'Resultat vun der Expansioun de erweiderten Parameterparameter mat dem kuersteste passende Muster (de `` % 'Fall) oder de längsten passende Muster (de `` % % '' Fall) geläscht. Wann de Parameter @ oder * ass , gëtt d'Musterentfernung uginn fir all Positionsparameter am Wee an d'Expansioun ass déi Resultat Lëscht. Wann de Parameter eng Array Variabelen déi mat @ oder * ënnerschriwwe gëtt , gëtt d'Musterentfernung operéiert fir all Member vun der Array am Wee an d'Expansioun ass d'Resultat Lëscht.

De Muster gëtt erweidert fir e Muster ze produzéieren sou wéi an der Pausname Expansioun. De Parameter gëtt ausgebaut an déi längsten Ufro vum Muster géint säin Wäert ersetzt duerch String . An der éischter Form gëtt just den éischte Match ersat. Déi zweet Form féiert all Matcher vum Muster ze ersetzen mat String . Wann d' Muster beginn mat # , muss et am Ufank vum erweiderten Wäert vum Parameter passen. Wann d' Muster mat % beginnt, muss et am Ende vum erweiderten Wäert vum Parameter passen. Wann der Zeecheketten null ass, ginn Matcher vum Muster geläscht a kann de / dëse Muster entlooss ginn. Wann de Parameter @ oder * ass , gëtt d'Substitutionsbetrieb an all Positionsparameter am Zesummenhang applizéiert an d'Expansioun ass déi Resultat. Wann de Parameter eng Array Variabel, déi mat @ oder * ënnerschriwwe gëtt , opgetruede gëtt , gëtt d'Substitutionsbetrieb an all Member vum Array an der Rei applizéiert an d'Expansioun ass déi resultéierend Lëscht.

Command Substitution

Command Substitution erlaabt d'Ausgab vum Kommando de Kommando name ze ersetzen. Et gi zwou Formen:

$ ( Kommando )

oder

` Kommando`

Bash féiert d'Expansioun unzefänken duerch Kommando auszeschléissen an ersetzen d'Kommandosubstitutie mat der Standardausgang vum Kommando, mat all trailing Newlines geläscht. Embedded Newlines ginn net geläscht, mä se kënne während Deelspaltung ofgespaart ginn. D'Kommando ersetzen $ (Katzdatei ) kann duerch déi entspriechend awer méi séier $ (< Datei ) ersat ginn.

Wann d'Form vun der Substitutioun vun der aler Stil zréckgekuckt ass, bleift den Réckschéisst seng literaresch Bedeitung ausser wann déi nächst $ , ` oder '. Déi éischt Réckquote vun engem Backslash ass net ofgeschloss. Wann Dir den $ ( Kommando ) Formulaire benotzt, all Charakteren tëschent de Klammeren de Kommando maachen; Keen gëtt speziell behandelt.

Kommando-Substitutionen kënnen verschachtelt ginn. Fir d'Nest beim Verwende vum richtege Formulaire aus der richteger Backquote mat Backslashes entzéien.

Wann d'Substitution ersat gëtt an dauert Zitaten, gëtt d'Spaltverdeelung an d'Verzunn vun der Begrënnung net op d'Resultater ausgezeechent.

Arithmetesch Expansioun

D'Arithmetik Expansioun erméiglecht d'Auswertung vun engem arithmetesche Ausdrock an der Auswiesselung vum Resultat. De Format fir d'arithmetesch Expansioun ass:

$ (( Ausdrock ))

De Ausdrock gëtt behandelt wéi wann se an duebel Zitaten sinn, awer e douce Dech an de Klouschter gëtt net speziell behandelt. All Tokens am Ausdrock ginn déi Parameterexpansion, String Expansioun, Kommandosubstitut a Zuchdeelung. Arithmetesche Substanzunge kënnen verschachtelt ginn.

D'Evaluatioun gëtt no de Reglementer déi ënnert ARITHMETIC EVALUZES genannt ginn . Wann d' Ausdréck ongëlteg ass, gëtt de Kasch eng Noriicht virgeschloen, déi e Feeler ass a keng Substitutioun ass.

Prozess Substitution

De Prozess Substitutioun gëtt vun Systemen ënnerstëtzt déi benannten Pipes ( FIFOs ) oder déi / dev / fd Methode fir Namensdate Dateien ze notéieren. Et fënnt d'Form vun <( Lëscht ) oder > ( Lëscht ) . D'Prozesslëscht lafen mat senger Input oder Ausgabe mat engem FIFO oder e puer Fichier an / dev / fd . Den Numm vun dëser Datei gëtt als Argument fir de aktuelle Kommando als Resultat vun der Expansioun iwwerholl. Wann d'Formel > ( Lëscht ) benotzt gëtt, schreift Iech an d'Datei fir d'Input fir List . Wann d'Formulär <( Lëscht ) benotzt gëtt, muss d'Datei als Argument geliest ginn fir d'Ausgab vun der Lëscht ze kréien .

Wann et verfügbar ass, gëtt d'Substanz vun der Prozesäit gläichzäiteg mat Parameter a variabelen Expansioun, Kommandosubstitut an arithmetesche Expansioun gemaach.

Word Sproch

De Shell scannt d'Resultater vun der Parameter Expansioun, Kommandosubstitut an arithmetescher Expansioun déi net am Doping Quoten fir Wuertverdeelung geschitt ass .

De Shell behandelt all Charakter vun der IFS als Entschiedegung, a verdeelt d'Resultater vun de anere Expansiounen an d'Wierder op dësen Zeechen. Wann d' IFS net ofgeschnidden ass oder säin Wäert ass exakt ass de Default, da gëtt all Sequenz vun den IFS Zeechen d 'Wuert begrenzt. Wann d' IFS e Wäert, deen aner wéi den Default ass, sinn d'Sequenzen vum Space Space an der Tab un am Ufank an am Ende vum Wuert ignoréiert, sou datt de Whitespace Zeechen am IFS (e IFS Whitespace Charakter) ass. All Charakter an IFS déi net IFS- Whitespace ass, zesumme mat all aaner benodeeleg IFS Whitespace Zeechen, en Feld. Eng Sequenz vun IFS- Whitespace Charakteren gëtt och als Delimiter behandelt. Wann de Wäert vun den IFS null ass, gëtt kee Spalt gemat.

Explizit Null Argumenter ( "" oder "' ) bleiwen. Ongëlteg implizit Null Argumenter, déi aus der Vergréisserung vun Parameteren, déi keng Wäerter hunn, ginn ofgeschaaft. Wann e Parameter ouni Wäerter innerhalb Doppele Quotes erweitert gëtt, gëtt e null Argument erofgeholl a festgehalen.

Bedenkt datt wann keng Expansioun stattfannt ass, gëtt keen Trennen duerchgefouert.

Expeditioun

Nodeem d'Spaltung ofgeschnidden ass, ausser d'Option -f ass setze sinn, scash all Wuert fir d'Zeechen * ,? , an [ . Wann ee vun dësen Zeeche steet, da gëtt d'Wuert als Muster betraff a ersaat duerch eng alphabetesch sortéiert Lëscht vun Dateinumm, déi mat dem Muster passen. Wann keng passende Dateinamen fonnt ginn an d'Shell-Optioun Nullglob ass ausgeschalt ginn, gëtt d'Wuert onverännert. Wann d' Nullglob- Optioun gespaart ass a keng Matcher fonnt ginn, gëtt d'Wuert ewechgeholl. Wann d'Shell-Optioun Nocaseglob aktivéiert ass, gëtt d'Match ouni Récksiicht op d'alphabetesch Zeechen ausgeführt. Wann e Muster fir Päerdsexpansion benotzt gëtt, muss de Charakter ``. '' Beim Start vun engem Numm oder direkt no engem Schlëssel explizit ugepasst sinn, ausser d' Schockoptioun Dotglob ass gesat. Wann e Passwuert entspriechend muss de Slashfiguer ëmmer explizit passen. An anere Fäll gëtt de Zeechen '`.' ' Net extra behandelt. Kuckt d'Beschreiwung vum Shopt ënnendrënner ënnert SHELL BUILTIN COMMANDS fir eng Beschreiwung vum Nocaseglob , Nullglob a Dotglob Shell-Optiounen.

D' GLOBIGNORE Shell-Variabel kann benotzt ginn fir den Ensemble vun Dateinummelen ze beschränken mat engem Muster . Wann GLOBIGNORE gesat gëtt, gëtt all passende Dateinumm, deen och mat engem vun den Muster am GLOBIGNORE entsprécht, aus der Lëscht vun de Mätscher aus. D'Dateinamen ``. '' An `` .. '' ginn ëmmer ignoréiert, och wann GLOBIGNORE gesat gëtt. De GLOBIGNORE huet awer den Effekt vun der Dotglob Shell-Optioun z'erreechen, sou datt all aner Dateinamen mat engem ``. '' Passen. Fir dat al Verhalen ze ignoréieren vun Dateinamen, déi mat engem ``. '' Begleeden , maachen ``. * '' Ee vun de Mustere vun GLOBIGNORE . D' Dotglob- Optioun ass deaktivéiert wann GLOBIGNORE net ofgeschloss ass.

Pattern Matching

All Charakter deen an engem Muster ersetzt gëtt, deen ausserhalb vun de spezielle Mustercharaktere beschriwwe steet, stécht mat him. De Nul Charakter ka net mat engem Muster passen. Déi speziell Musterfigur mussen zitéiert sinn, wann se wuertwollege passen.

Déi speziell Mustercharaktere sinn déi folgend Bedeitungen:

*

Mätscher all String, dorënner d'Nullstring.

?

Mä jiddereen eenzel Charakter.

[...]

Mäts de ee vun de zouene Charaktere. Een Paar Zeechen, déi duerch e Bindestrich getrennt sinn, bezeechent een Ausdrockausbeefer ; All Charakter deen tëschent deenen zwee Zeechen integréiert ass, mat der aktueller Locatiounsammlung a Zeechefëll ass matdeelen. Wann d'éischt Zeeche no der [ eng ! oder en ^ ass kee Charakter net zouginn ass mat ugepasst. D'Sortéierungsuerdnung vun Zeechen an Ausdrockausdréck ass festgeluecht ginn duerch déi aktuell Lokale an de Wäert vun der Shell Variablen LC_COLLATE , wann de Set gesat gëtt. A - passt mat der sougenannter als de éischten oder de leschten Charakter am Set. A ] kann matdeelen, andeems en als éischt Zeeche am Set ass.

An [ a ] sinn Zeechekategorien mat der Syntax [: Klasse :] spezifizéiert ginn, wou d' Klass ee vun de folgenden Klassen ass, déi am POSIX.2 Standard definéiert sinn:

Alnum Alpha ascii leien cntrl Ziffer Graf méi déif dréckt Punkte Raum Héviichtung xdigit
Eng Charakter Klasse passt mat engem Charakter deen zu dëser Klasse gehéieren. De Wuert Zeechekrank entsprécht Bréifer, Zifferen an dem Charakter _.

[[ ]] [[ ]] An [[ ]] an der Equivalentzréck kéint mat der Syntax [= c =] spezifizéiert ginn, déi all Charaktere mat deemselwechte Kollagératiounsknapp (wéi definéiert vun der aktueller locale) als Zeechen c .

An [[ ] [[ ]] sinn d'Syntax [. Symbol .] passéiert d'Symbol fir symbolesch Symbol .

Wann d' Extlob Shell-Opsiicht aktivéiert gëtt mat dem Shopt gebaut, ginn verschiddene erweiderten Muster passende Operatoren unerkannt. An der folgender Lëscht ass eng Muster Lëscht eng Lëscht mat engem oder méi Muster, getrennt vun a | . Composite Musteren hu sech forméiert mat engem oder méi vun de folgenden Submodeller:

( Muster-Lëscht )

Matches Null oder ee Véierel vun de gegebene Muster

* ( Muster-Lëscht )

Matches Null oder méi Virgäng vun de gegebene Muster

+ ( Muster-Lëscht )

Matches een oder méi Virdeeler vun de gezeechent Musteren

@ ( Muster-Lëscht )

Spillt genau eent vun de gezeechent Muster

! ( Muster-Lëscht )

Matches alles anescht wéi ee vun de beschten Muster

Zitat Removal

No der virgeschriwwener Expansioun goufen all net verëffentlecht Evenementer vun den Zeeche \ , " a " déi net aus enger vun den uewe grouss Expansioune resultéiert goufen entfernt.

REDIRECTION

Vir e Kommando ausgefouert gëtt, kann seng Input an Output ofgeliest ginn duerch eng speziell Notiz vun der Shell. Redirection kann och benotzt ginn fir Dateien an der aktueller Shell-Exemplar ze öffnen an ze schließen. Déi nächst Ofreegungsoperateuren kënnen entweder an engem einfache Kommando viraus oder iergendeppes äntweren oder e Kommando maachen . Redirections ginn an der Uerdnung vun der rietser a riets veraarbecht.

An den folgenden Beschreiwungen, wann d'Datei Dossiernummer ewechläit ass, an den éischten Zeeche vun der Umännerung Operator ass < referséiert d'Ëmännerung op déi Standardeingabe (Dateibeschreiwe 0). Wann de éischten Zeeche vun der Redirektiounsbetreiber ass > , ass d'Ëmännerung op d'Standardausgab (Datei Descriptor 1).

D'Wuert no dem Redirektiounbetreiber an de folgende Beschreiwungen, ausser wann et net anescht bekannt ass, gëtt der Ausdehnung vun der Hallefkugel, der Expandéierung, der Parameter Expansioun, der Kommandosubstitut, der arithmetesche Expansioun, der Zorthéierung, der Pathname Vergréisserung an der Spaltung vum Wort ausgesetzt. Wann et méi wéi een Wuert erweidert, mëcht e Fehler.

Bedenkt datt d'Reief vun Ufuerderungen wichteg ass. Zum Beispill, de Kommando

ls > Dirigent 2 > & 1

Regelt och normaler Ausgab an Standardfehler an den Dirlist , während de Kommando

ls 2 > & 1 > dirlist

lenkt nëmmen de Standardausgang fir d'Datei d' irlist , well de Standardfehler duplatéiert gouf als standardausgab, ier d'Standardausgang an d' Dreirlist ëmgeleet gouf .

Bash behält verschidde Filenamen speziell wann se bei Redirektioun benotzt ginn, wéi et an der folgender Tabelle beschriwwe gëtt:

/ dev / fd / fd

Wann fd eng valabel Integer ass, gëtt d'Datei Descriptor fd kopéiert.

/ dev / stdin

De Datei-Descriptor 0 gëtt duplicéiert.

/ dev / stdout

De Datei-Descriptor 1 gëtt duplicéiert.

/ dev / stderr

De Datei-Descriptor 2 gëtt duplicéiert.

/ dev / tcp / host / port

Wann de Provider e gëltege Hostnam oder Internet Adress ass, a Port ass eng Integer port Nummer oder Servicebezeechnung, bash versprécht eng TCP-Verbindung op de korrespondéierte Socket opzemaachen.

/ dev / udp / host / port

Wann de Provider e gëltege Hostnam oder Internet Adress ass, a Port ass eng ganz Zuel Portnummer oder ServiceName, bash Versuche fir eng UDP-Verbindung op de korrespondéierte Socket ze maachen.

E Feeler fir ze öffnen oder e Fichier ze ergréifen datt d'Ofleetung fehlschléit.

Redirecting Input

Redirectioun vun der Input verursacht de Fichier, deen säin Numm aus der Expansioun vum Wuert erof liesen fir ze liesen op Datei-Descriptor n , oder den Standardeingriff (Datei Descriptor 0) wann n net uginn.

De generelle Format fir d'Inspiratioun ze verbannen ass:

[ n ] < Wuert

Redirecting Output

Redirectioun vun der Ausgaassung verursacht de Fichier, deen säin Numm Resultat aus der Vergréisserung vum Wuert fir Schreift op Datei Dossier n , oder der Standardausgang (Datei Descriptor 1) ze schreiwen wann n net uginn. Wann d'Datei net existéiert, gëtt et erstallt. Wann et net geet, ass et ofgeschoss op Null Gréisst.

De generelle Format fir d'Reduktioun vum Output ass:

[ n ] > Wuert

Wann de Operateur vun der Redirektioun > an der Noclobberoptioun op de Set gebaut gouf aktivéiert ass, gëtt d' Neuerung funktionéiert net wann d'Datei déi aus dem Ausdrock vum Wuert existéiert, a fichéiert eng normal Datei ass. Wann de Redirektiounbetreiber > | , oder den Ufuerderennungsoperateur ass > an d' Noklobberoptioun un de setin gebaute Kommando net aktivéiert ass, gëtt d'Ëmleitung bestrooft, och wann d'Datei gëtt mam Wuert geheescht .

Ofgeschéckt Redirected Output

Redirection vun der Ausgaangung zu dëser Moudewand bewierkt datt d'Datei, déi hir Nimm aus der Expansioun vum Wuert geheft huet fir op Date File Descriptor n , oder der Standardausgang (Datei Descriptor 1) opzeginn, wann n net spezifizéiert ass. Wann d'Datei net existéiert, ass et erstallt.

De generelle Format fir d'Ofhängegkeet ass:

[ n ] >> Wuert

Redirecting Standardausgang a Standardfehler

Bash léisst an der normaler Ausgab (Datei-Descriptor 1) an der Standardfehler-Ausgaang (Datei Descriptor 2) op d'Datei zréck an déi Datei whose name is the expansion of word with this construct.

Et gi zwou Formate fir d'Standardausgang a Standardfaarf ëmzesetzen:

&> Wuert

an

> & Wuert

Vun deenen zwee Forme gëtt den éischte Virdeel. Dëst ass semantesch Äquivalent

> Wuert 2 > & 1

Hei Dokumenter

Dës Zort vun Ofleef weist der Shell d'Input vun der momentaner Quell un ze liesen bis eng Zeil mat nëmmen e Wuert (ouni no laange Schläifen) gesi gëtt. All d'Zeilen liest bis zu deem Punkt ginn dann als Standardeingunge fir e Kommando benotzt.

D'Form vun hier Dokumenter ass:

<< [ - ] Wuert Wuert -Dokument Déclaratioun

Kee Parameter Expansioun, Kommandabsetzung, arithmetesch Expansioun oder PathName expansioun gëtt am Wuert gemaach . Wann iergendeen Zeechen am Wuert zitéiert sinn, ass de Begleeder d'Resultat vum Zousatzdeelung am Wuert , an d'Linnen am Hierarchie erweidert net. Wann d' Wuert net bequem ass, ginn all Linn vun dësem Dokument op d'Parameteren erweidert, Kommandosubstitut an arithmetesch Expansioun. Am lëschten Fall gëtt d'Zeechekenners \ ignoréiert an \ u muss benotzt ginn fir d'Zeeche \ , $ an d'Zeeche ze maachen.

Wann de Redirektiounbetreiber << - ass , all féierend Tabulatiounstypen aus den Inputlinien an d'Linn enthüllt sinn . Dëst erlaabt et - Dokumenter am Shell-Scripten op natierlecht Uleed ze ginn.

Hei Strings

Eng Variante vun dësem Dokumenter, ass de Format:

<<< Wuert

D' Wuert gëtt erweidert a gëtt op de Standardeingunge vum Kommando geliwwert.

Duplizéierende Dateiverkenner

De Redirektiounsoperateur

[ n ] <& Wuert

gëtt benotzt fir duplizéiert Input- Datei Deskriptoren opzefänken. Wann d' Wuert op ee oder méi Zifferen erweidert gëtt, gëtt den Dateibeschriweger, dee vum n bezeechent gëtt, als Kopie vun deem Dateiversorschrift gemaach. Wann d'Zifferen am Wuert net e Fichierdeskriptor opmaachen fir d'Input unzeginn, geet e Réckféierungsfehler op. Wann d' Wuert ën evaluéiert ass - , gëtt Dateibeschreiwung n zougemaach. Wann n net spezifizéiert ass, gëtt de Standardeingriff (Datecriptorcriptor 0) benotzt.

De Bedreiwer

[ n ] > & Wuert

benotzt ähnlech wéi duplizéiert Ausgabdate Deskriptoren. Wann n net spezifizéiert ass, gëtt de Standardausgang (Dateiformat 1) benotzt. Wann d'Zifferen am Wuert net e Dateiversetzer an der Ausgab opmaachen, da fiert e Réckféierungsfehler. Als Spezialfall, wann n net ausgeliwwert gëtt, gëtt d' Wuert net zu enger oder méi Zifferen erweidert, gëtt de Standardausgang a Standardfehler wéi virdrun beschriwwen.

Ofgeschlossene Dateiverkenner

De Redirektiounsoperateur

[ n ] <& Ziffer -

bewegt de Ficheldeskriptor Ziffer Dateisystem N , oder den Standardeingriff (Datei Dossier 0), wann n net spezifizéiert ass. Ziffer ass ofgeschloss nodeems se duplizéiert op n .

An ähnlech ass den Ofdirektiounsbedreiwer

[ n ] > & Ziffer -

bewegt de Ficheldeskriptor Ziffer fir Dateiscriptor n , oder den Standardausgang (Datecriptorcriptor 1), wann n net spezifizéiert ass.

Open-Descriptorë fir Liesen a Schreiwen

De Redirektiounsoperateur

[ n ] <> Wuert

bewierkt d'Datei, déi den Numm erweidert ass, fir Wuert a Schreifweis op Datedeskriptor n , oder op Date Deskriptor 0 ze lancéieren. Wann n net uginn ass. Wann d'Datei net existéiert, gëtt et erstellt.

ALIASEN

Aliases erlaben e String fir e Wuert ze ersetzen, wann et als éischt Wuert e einfache Kommando benotzt. De Shell hält eng Lëscht vun Aliasen, déi mat den Aliasen an Uniasyen gebaaft ginn, déi gebaut ginn an ervirruffen (kuckt SHELL BUILTIN COMMANDS ). Déi éischt Wuert vun all Kommando, wann net onkloer ass, gëtt gefrot fir ze kucken, ob et en Alias ​​huet. Wann dat heescht, gëtt dëst Wuert duerch den Text vum Alias ​​ersat. De Alias ​​Numm an den Ersatztext kann eventuell gültege Shell-Input sinn, an och den Metacharakter, déi hei uewen opgezeechent sinn, mat der Ausnam datt den Alias ​​Numm net enthält. Den éischte Wuert vum Ersatztext gëtt fir Aliasen getest, awer e Wuert, deen identesch ass mat engem Alias ​​deen erweidert gëtt gëtt net ausgedroe ginn. Dëst bedeit datt eens den Alias ls an ls -F , zum Beispill, a Stroum versprécht net de Rekordtext erofhuelen. Wann de leschte Charakter vum Aliaswert e Blend ass , da gëtt de nächste Kommandoweg no der Alias ​​och agestallt fir den Aliasxpansion.

Aliases sinn erstallt a mat dem Alias- Kommando opgezielt a goufen mam Kommandant vun der Uni geläscht .

Et gëtt keen Mechanismus fir Argumenter am Ersatztext ze benotzen. Wann d'Argumenter noutwendeg sinn, sollt eng Shellfunktioun benotzt gin (kuck FUNCTIONS ënnen).

Aliases sinn net erweidert wann d'Shell net interaktiv ass, ausser d' Erweiterung_alases Shell-Optioun gëtt mat Shopt gesat (kuckt d'Beschreiwung vum Shopt ënner COMMENTS ).

D'Regele fir d'Definitioun an d'Benotzung vun Aliases sinn e bëssche verwiesselt. Bash liest ëmmer op d'mannst eng komplette Zeil vun der Input, ier e vun de Kommandoen op dëser Linn ze féieren. Aliasen ginn erweidert wann e Kommando gelies gëtt, net wann et ausgefouert gëtt. Dofir ass eng Aliasdefinitioun déi op der selweschter Linn wéi e anere Kommando ersat gëtt net effektiv, bis d'nächst Informatiounsguide geliwwert gëtt. D'Kommandoe no der Aliasdefinitioun op dëser Linn sinn net vum neie Pseudo betrëfft. Dëst Verhalen ass och e Problem, wann d'Funktiounen ausgezeechent ginn. Aliasen ginn erweidert wann eng Funktioun Definitioun gelies gëtt, net wann d'Funktioun ausgezeechent gëtt, well eng Funktioun Definitioun selwer ass e komponéiert Kommando. Als Konsequenz sinn Aliasen, déi an enger Funktioun definéiert sinn, net verfügbar, bis dës Funktioun ausgezeechent gëtt. Fir sécher ze sinn, Alias ​​Definitioune ginn op eng getrennte Linn, a benotzt kee Alias an Compound-Kommandoen.

Fir bal all Zweck, Aliasen ginn duerch Shellfunktiounen iwwersetzt.

FUNCTIONS

Eng Shellfunktion, definéiert wéi et hei steet ënnert SHELL GRAMMAR , gëtt eng Rei vu Befehl fir eng spéider Executioun. Wann de Numm vun enger Shellfunktioun als einfacher Kommando name benotzt gëtt, gëtt d'Lëscht vun Kommandoen, déi mam Funktiounsnam ass ass ausgeführt. Funktioune ginn am Kontext vun der aktueller Shell ausgeführt; Kee neie Prozess ass geschafen fir se ze interpretéieren (konträr dës mat der Ausféierung vun engem Shell-Skript). Wann eng Funktioun ausgezeechent gëtt, ginn d'Argumenter op d'Funktion déi Positionalparameter während senger Ausféierung. De spezielle Parameter # gëtt aktualiséiert a fir d'Verännerung gerechent. Positiver Parameter 0 ass onverännert. D' FUNCNAME Verännerlechkeet gëtt op den Numm vun der Funktion gesat, während d'Funktioun ausfëllt. All aner Aspekter vun der Shell-Exekutivumvirstellung sinn tëscht enger Funktioun an hirem Rufnummer identesch mat der Ausnahm datt de DEBUG Trap (kuckt d'Beschreiwung vum Trap deen am Bau vum SHELL BUILTIN COMMANDS genannt gëtt) ass net ereng a wéini d'Funktioun den Trace- Attribut kritt huet ( kuckt d'Beschreiwung vun der Gebuert declinéiert hei ënnen).

Variablen lokal mat der Funktioun ginn am lokalen gebauten Kommando deklariert. Normalerweis kënne Variablen an hir Wäerter tëscht der Funktioun an hirem Gespréich gedeelt ginn.

Wann de Buedembefehl zeréck an enger Funktioun ausgezeechent gëtt, fëllt d'Funktioun an d'Ausféierung mat dem nächsten Kommando nom Funkconcert. Wann eng Funktioun fäerdeg sinn, ginn d'Wäerter vun den Positivparameter an de spezielle Parameter # op d'Wäerter zréckgezunn, déi se bis bei der Ausféierung vun der Funktioun zougelooss hunn.

Funktiounnamen an Definitioune kënnen mat der -f opgefouert ginn fir d'Befehle deklaréieren oder setze gebaut. D'- F-Fënster fir deklaréieren oder Zeechen nëmmen d'Funennamen. Funktioune kënnen exportéiert ginn, sou datt Subschelle automatesch mat der -f Option op d' Exportéiert gebaut sinn.

Funktioune kann rekursiv sinn. Et gëtt keng Limit fir d'Zuel vun recursive Uriff.

ARITHMETIK EVALUZUNG

De Shell erlaabt Arithmetik Ausdréck ze evaluéieren, ënner verschiddene Verhältnisser (kuckt de Gebaier entlooss an d' arithmetesch Expansioun ). D'Evaluatioun ass a Fixed-Breed-Integer gemaach, déi keng Iwwerliewung fir Iwwerstrof maachen, obwuel Divisioun duerch 0 fängt an als e Feeler markéiert. D'Operatoren an hir Viraussetzung an Associativitéit sinn déi selwecht wéi déi vun der C Sprooch. Déi folgend Lëscht vu Betreiber ass gruppéiert an d'Niveaue vun der Operatioun Equal Oprière. D'Niveauen ginn an d'Uerdnung vum Ofbau vu Prioritéit opgezielt.

id ++ id -

variabelen Post-Inkrement a Postreduktioun

++ id- id

Verännerlech Pre-Increment a Pre-Decisioun

- +

unary minus a plus

!! ~

Logik a béid negatif

**

Exponentatioun

* /%

Multiplication, Divisioun, Rescht

+ -

Zousätzlech Subtraktioun

<< >>

lénks a richtegen Broch ze veränneren

<=> = <>

Verglach läit

==! =

Gläichheet an Ongläichheet

&

bis BOURNUSSEN

^

bëssi exklusiv ODER

|

Bëssu uewen

&&

logesch AND

||

logesch OR

expr ? expr : expr

conditionnell Evaluatioun

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

uginn

expr1 , expr2

Comma

Shell-Variablen sinn als Operne gestuerwen; D'Parameter Expansioun gëtt ausgezeechent vir den Ausdrock gëtt ausgewert. An engem Ausdrock ass Shell-Variabelen och duerch den Numm referenzéiert ouni de Syndax vun der Parameter Expansioun ze benotzen. De Wäert vun enger Verännerlechkeet gëtt als arithmetesch Ausgrenzung beurteelt wann et referenzéiert gëtt. Eng Shell-Variabel brauch net dat Ganzt Attribut op eng Expression.

Konstanten mat engem féierende 0 ginn als Octalzuelen interpretéiert. E féierend 0x oder 0X bezeechent sech hexadezimal. Sinn d'Zuelen un d'Form [ Basis # ] n, woubäi eng Dezimalzuel tëschent 2 an 64 ass déi arithmetesch Basis, a n ass eng Zuel an där Base. Wann Basis # ausgeliwwert ass, dann Base 10 benotzt. D'Zifferen méi wéi 9 sinn duerch déi kleng Mëllechbucher, déi grouss Buchstaben, @ a an _ an dëser Restellung representéiert. Wann Basis ass manner wéi 36 oder manner wéi 36, manner kleng a Grousscase Briefe kënnen interchangeabel sinn fir d'Nummeren tëschent 10 a 35 ze representéieren.

D'Betreiber gi prioritär evaluéiert. Sub-Ausdréck an Klammeren ginn zuerst evaluéiert an däerf d'Prioritéit Regele uewe virstellen.

KONDITON EXPRESSIONS

Conditional expressiounsfäegs ginn vun dem [[ compound compound and the test and [ commandin commands to test file attributes a string an arithmetesche vergläicht. Ausdréck sinn aus der folgender Unari oder de binäre Primärschoule geformt. Wann all Argumenter vum Fichier op ee vun de Primärschoule vun der Form / dev / fd / n ass , da gëtt Dateibeschreiwe n kontrolléiert. Wann de Fichier Argumenter op ee vun de Primärschoule ass ee vun / dev / stdin , / dev / stdout , oder / dev / stderr , Datei Deskriptor 0, 1 oder 2 respektéiert.

-a Datei

True wann d' Datei existéiert.

-b Fichier

True wann d' Datei gëtt an ass e spezielle Fichier.

-c Datei

True wann d' Datei existéiert an ass e Charakter spezielle Fichier.

-d Datei

True wann d' Datei gëtt an ass e Verzeichnis.

-e Fichier

True wann d' Datei existéiert.

-f Fichier

True wann d' Datei existéiert an eng regulär Datei ass.

-g Fichier

True wann d' Datei existéiert an ass set-group-id.

-h Fichier

True wann d' Datei existéiert an e symboleschen Link ass.

-k Fichier

True wann d' Fichier existéiert an e "klengen" Bit ass opgesat.

-p Datei

True wann d' Datei existéiert an ass e benannte Pipe (FIFO).

-r Fichier

True wann d' Datei existéiert an liest.

-s Datei

True ass wann Fichier existéiert an huet eng Gréisst vu méi Null.

-t fd

Wëllt Dir Fichier Deskriptor fd offen a steet op enger Termin.

Fichier

True wann d' Datei existéiert an d'Set-User-Id Bit ass gespaart.

-w Fichier

True wann d' Datei existéiert an ass schrëftlech sinn.

-x Datei

True wann d' Datei existéiert an ausführbar ass.

-O Fichier

True ass wann d' Datei existéiert an e Proprietär vun der effektiver Benotzer id.

-G Fichier

True wann d' Datei existéiert an ass vun der effektiver Grupp ID gehéieren.

-L Datei

True wann d' Datei existéiert an e symboleschen Link ass.

-S- Fichier

True wann d' Datei existéiert an ass en Socket.

-N Datei

True wann d' Datei existéiert an ass geännert ginn zënter datt et lescht geliest gouf.

file1 - nt file2

True wann file1 neier ass (nodeem ännert Datum) than file2 , oder wann file1 existéiert an file2 net.

Datei1 - ot file2

True Falls file1 älter als file2 , oder wann file2 existéiert an file1 net.

file1 -ef file2

Wëllt der file1 an file2 d'selwëcht Geräter an Inode Nummern bezuelen.

--Ooptne name

Giffe wou ech d'Optiounoptioun ass ofgeschnidden ass. Kuckt d'Lëscht vun de Méiglechkeete ënnert der Beschreiwung vun der -o Option op d'Installatioun nach no.

-z String

True wann d'Längt vu String Null ass.

-n String

String verlaangt

True wann d'Längt vun String net null ass.

string1 == string2

Gleeft wann d'Zeechen d'selwecht sin. = kann benotzt ginn als == fir strikt POSIX Konformitéit.

string1 ! = string2

True wann d'Zeechen net gläich sinn.

string1 < string2

True si String1 sortéiert virun der string2 lexicographesch an der aktueller locale.

string1 > string2

True si string1 sortéiert no string2 lexicographesch an der aktueller locale.

Arg1 OP Arg2

OP ass eng vun -eq , -ne , -lt , -le , -gt , or -ge . Dës arithmetesch binäre Betreiber versetzen ech richteg, wann arg1 d' selwecht ass, net gläich wéi manner, manner wéi oder manner wéi gréiss oder wéi oder méi wéi arg2 . Arg1 a Arg2 ka positiv oder negativ sinn.

EISCHEN AUSSERWÉIEREN

Wann e einfacht Kommando ausgefouert gëtt, féiert d'Shell déi folgend Expansiounen, Aufgaben a Reduktiounen, vu lénks op riets.

1.

Déi Wierder, déi de Parser als variabele Verzeechnunge markéiert huet (déi virdrun de Kommando name ginn) an d'Redirektioune ginn fir spéider Veraarbechtung gespäichert.

2.

Déi Wierder déi net variabel Verdeelungen oder Neiwahlen sinn erweidert. Wann iergendeen Wierder nach Expansioun bleiwen, gëtt d'éischt Wuert e Numm vum Kommando geholl an d'aner Wierder sinn d'Argumenter.

3.

Redirections ginn esou gemaach wéi virdrun ënner REDIRECTION .

4.

Den Text no der = an all Variabele Beliichtung erfëllt d'Expandéierung, d'Parameter Expansioun, d'Kommando, d'arithmetesch Expansioun an d'Zousatzstécker, ier se de Variablen zugewielt ginn.

Wann keng Erklärung vum Kommando gouf, bemierken déi variabel Verdeelungen déi aktuell Shell-Ëmfeld. Sinn d'Variablen an d'Ëmfeld vum ausgezeechent Kommando addéiert a beaflosst d'aktuelle Mauerpomme net. Wann eng vun de Verdingunge versprécht eng Wäerterliicht variéieren ze loossen, fällt e Feeler, an de Kommando fiert mat engem Status ouni Null.

Wann keng Erklärung vum Kommando gouf, ginn d'Ufuerderungen ugewisen, awer beaflosst d'aktuelle Shell-Ëmfeld. E Reegungsfehler verursacht de Kommando aus engem Status ouni Null.

Wann et e Kommando name no der Expansioun lénks gëtt, fiert d'Exekutioun esou wéi et hei beschriwwe gëtt. Soss gëtt de Kommando aus. Wann een vun den Expansiounen eng Kommandosubstitut enthale war, ass den Ausgabestatus vum Kommando den Ausgabestatus vun der leschter Kommando ersat. Wann et keng Kommandoen ersat war, huet de Kommando ofgeschloss mat engem Status vun Null.

COMMAND AUSSENT

Nodeems e Kommando gouf an d'Wierder gespäichert, wann et e einfache Kommando a e optional Lëscht vun Argumenter resultéiert, ginn déi folgend Aktiounen erfaasst.

Wann de KommandoName keng Schräars enthält, versicht d'Shell ze lokaliséieren. Wann et eng Shellfunktion gëtt mat deem Numm, gëtt dës Funktioun opgeruff, wéi et hei uewen an der FUNCTIONS beschrieben ass . Wann de Numm net mat enger Funktioun entsprécht, fënnt d'Shell et an der Lëscht vun de Buedem gebaut. Wann e Match fonnt gëtt, ass dee Gebai invitéiert.

Wann den Numm weder e Shellfunkt noch e Buedem ass a keng Schräars enthält, bash all Element vum PATH no engem Verzeichnis mat enger ausführbarer Datei mat deem Numm. Bash benotzt een Hash-Table um Erënnerungen un déi voll Päischtamen vun ausführbare Dateien ze erënnen (siehe Hash Under SHELL BUILTIN COMMANDS ). E komplette Sich vun de Verzeichnisser an der PATH ass eréischt wann de Kommando net am Hash-Dësch fonnt gëtt. Wann d'Sich net erfollegräich ass, dréit d'Shell e Fehlermeldung a kordéiert e Exitstatus vun 127.

Wann d'Sich ass erfollegräich ass, oder wann de Kommando name ee oder méi Schräars enthält, féiert d'Shell den Nummprogramm an enger getrennter Exekutiounvirgang aus. Argument 0 gëtt op den Numm geheescht an déi aner Argumente vum Kommando ginn op d'Argumenter festgeluecht, wann et se gëtt.

Wann dës Ausféierung klappt, well d'Fichier net an dat ausführbar Format ass an d'Datei net e Verzeichnis ass, ass ugeholl datt e Shell-Skript , e Fichier mat Shell-Kommandoen ass. E Subschuel ass opgeklärt fir et auszekommen. Dëst Subschell rettiséiert sech selwer, sou datt den Effekt als ob eng nei Shell opgeruff gouf fir de Skript ze behandelen, mat der Ausnahm datt d'Uergel vun Befehl, déi vum Elterendefeier erënnert ( Hachënnerscheed ënnert SHELL BUILTIN COMMANDS ), behält vum Kand.

Wann de Programm e Fichier mat # beginnt ! , de Rescht vun der éischter Linn e spezifizéiert en Dolmetscher fir de Programm. De Shell exekutéiert den spezifizéierte Dolmetscher op Operatiounsystemer déi net selwer lafe loossen. Déi Argumenter fir den Interpreter besteet aus engem eenzegen optionalen Argument deen dem Interpreter-Name op der éischter Linn vum Programm gët, gefollegt vum Numm vum Programm, gefollegt vun de Kommando Argumenter, wann et se gëtt.

COMMAND AUSSERUNG UMWELT

De Shell huet eng Exekutatiounsvirgebung , déi aus de folgende Punkte besteet:

*

opgetrueden Dateien vun der Shell bei Approche geännert, sou wéi d'Ännerunge geännert ginn, déi am Executiv gebaut ginn

*

dem aktuellen Aarbechtsverwaltungsgeriicht wéi vum CD , pushd oder popd oder vun der Shell am Accueil gefeiert

*

déi Schabloun Schablounemodus Maschinn wéi déi vun umask oder vun der Elterendeel vun der Muschel geerbt

*

aktuellen Fallen déi duerch Falle gesat ginn

*

Schalparameter déi duerch variabel Verzeechnung festgeluecht ginn oder mat Setzer oder vun der Elterendeel vun der Muschel an der Emwelt erfollegräich sinn

*

Shell-Funktiounen, déi während der Ausféierung definéiert sinn oder vun der Elterendeel vun der Muschel an der Ëmwelt geherrscht ginn

*

Optiounen erméiglecht bei invokatioun (entweder op Standard oder mat Kommandozeilen Argumenter) oder duerch Set

*

Méiglechkeeten aktivéiert duerch Shopt

*

Shell Aliasen mat Alias definéiert

*

verschidde Prozedure IDen, dorënner aner vun Backgroundpläng, de Wäert vun $ $ , an de Wäert vun $ PPID

Wann een einfachen Kommando wéi eng gebauter oder Shellfunktion funktionnéiert, gëtt et op eng getrennte Executiounsumgebung opgeruff, déi aus der folgender Lëscht ass. Sinn näischt anescht wéi d'Wäerter vun der Shell erbäigefouert.

*

den Open Shell Dateien, och all Modifikatiounen an Addieren, déi duerch Redirektioune vum Kommando spezifizéiert sinn

*

dem aktuellen Aarbechtsaccord

*

der Datei Erschaubungsmodus Maschinn

*

Shell-Variabelen déi fir den Export markéiert ginn, zesumme mat variabelen Exportate fir den Kommando, an d'Ëmwelt verlooss ginn

*

Traps vun der Shell gespaart ginn op d'Wäerter zréckgezunn déi vum Parel vum Shell erbäigefouert sinn, a Fallen déi vun der Shell ignoréiert sinn ignoréiert

Eng Kommandatioun op dësem getrennte Ëmfeld kann net beaflosst ginn.

Kommando-Substitutioun a asynchrone Kommandë ginn opgeriicht an enger Ënner-Schach ëmfaalen, déi e Duplikat vun der Shell-Ëmgéigend ass, ausser datt d'Trap vun der Shell op d'Wäerter zréckgesat gëtt, déi d'Shell vun hirem Elterende bei der Ukënnegung geerbt huet. Builtin Kommandoen, déi als Deel vun enger Pipeline invocéiert sinn, goufen och an enger Ënnerhalung Ëmfeld ausgeführt. Ännerungen, déi an der Ënnerhalung ofgeschnidden sinn, kënnen net beaflosst ginn op d'Exekutioun vun der Musel.

Wann e Kommando ass mat engem & a Kontroll kontrolléiert ass net aktiv, ass de Standard-Standardeingere vum Kommando d'Datei / dev / null . Sinn den invuléierte Kommando d'Dateiverschléiungen vun der beruflecher Shell erënnert wéi déi vun der Redirektioun geännert ginn.

KUCK OCH

Bash Referenzhandbuch , Brian Fox a Chet Ramey

D'Gnu Readline Library , Brian Fox a Chet Ramey

D'Gnu History Library , Brian Fox a Chet Ramey

Portable Operating System Interface (POSIX) Deel 2: Shell an Utilities , IEEE

sh (1), ksh (1), csh (1)

Emacs (1), vi (1)

lsline (3)