Asche - Linux Command - Unix Command

NUMM

sh - Kommandéiert Dolmetscher ( Shell )

SYNOPSIS

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

DESCRIPTION

Sh ass de Standard Kommando-Interpreter fir de System. Déi aktuell Versioun vu Sh ass am Prozess vun der Verännerung geformt ginn mat dem POSIX 1003.2 a 1003.2a Spezifikatiounen fir d'Shell. Dës Versioun huet vill Fonktiounen déi se an e puer Aspekter un de Korn Shell erscheinen, awer et ass net e Korn-Shell-Klon (kucke ksh (1)). Nëmme Méiglechkeeten, déi vum POSIX plus e puer Berkeley-Extancen bezeechent ginn, ginn an dës Schuel entloos. Mir erwarten POSIX Konformitéit no der Zäit 4.4 BSD gëtt verëffentlecht. Dës Mann Säit ass net fir e Tutorial oder eng ganz Spezifizéierung vun der Shell ze sinn.

Iwwersiichtskaart

De Shell ass e Kommando datt Linnen entweder vun enger Datei oder dem Terminal liest, interpretéiert se a generell aner Befehle aus. Et ass de Programm, dee laaft wann e Benotzer en de System hëlt (awer e Benotzer kann eng aner Schuel mat dem Kommando chsh (1) auswielen). De Shell realiséiert eng Sprooch, déi Stroumkontrollkonstrukt huet, eng Makro-Facilitéit, déi eng Rei verschidde Fonktiounen zousätzlech zum Datenspeicher bitt, zesumme mat der Geschicht an den Editéierungsfunktiounen erstallt. Et integréiert vill Méiglechkeeten fir interaktiver Benotzung ze hëllefen an huet den Avantage datt d'interpretative Sprooch fir gemeinsamen an interaktiven an net interaktiven Gebrauch (Shellskripte) gänglech ass. Dat heescht, Kommandoe kënnen direkt op d'Laach Shell geschriwwe ginn oder kënnen an eng Datei gesat ginn an d'Datei kann direkt vun der Shell exekutéiert ginn.

Invokéieren

Wann keen Argument present ass a wann de Standarde vum Shell mat engem Terminal verbonne gëtt (oder wann de - i Fluch ass gespaart), an d'Option kann net an d'Shell gët als eng interaktive Shell uginn . Eng interaktive Shell ass allgemeng op all Kommando gebonnen an handhabt Programméierungs- a Kommandofehler ënnerschiddlech (wéi et hei ënnendrënner beschriwwen ass). Wann d'éischt unzefänken, kontrolléiert d'Shell Argument 0, a wa se mat engem Strich beginnt "-" ass d'Shell och als Loginschong geduecht. Dëst ass normalerweis automatesch vum System geschitt wann de Benotzer zënter éischt a Logbicher zielt. E Log-Shell liesen zielt éischter Kommandoen aus den Dateien / etc / profile a .profile wann se existéieren. Wann d'Ëmännerungsvariable ENV op eng Ekliptik op e Shell gesat gëtt oder op de .profil vun engem Login Shell gesat ass, liest d'Shell d'Befehle vun der Datei an ENV. Dofir däerf en Benotzer Kommandë setzen, déi nëmmen ausgefouert ginn Loginzäit an der .profile Datei an Kommandoen déi fir all Shell innerhalb vun der ENV Datei ausgezeechent ginn. Fir déi ENV Variabel op e puer Fichier ze setzen, liesen déi folgend Linn an Ärem .profil vum Ärem Heemveräin

ENV = $ HOME / .schinit; Export ENV

Ausname fir `` .shinit '' all Dateinumm wann Dir wëllt. Zënter der ENV- Datei gëtt fir all Invokatioune vun der Shell geliest, och Shell-Skripte a net interaktive Shells, ass de folgend Paradigma nëtzlech fir d'Befehle vun der ENV- Datei fir interaktive Invokatiounen ze beschränken. Kommandéiert Uergelen am '`Fall' 'an` ` esac ' 'ënnen (dës Kommandoen goufen spéider beschreift):

Fall $ - an * i *)

# Kommandoen fir interaktiv Notzung

...

esac

Wann d'Argumenter Argumenter ausser den Optiounen spezifizéiert ginn, behandelt den éischte Argument als den Numm vun enger Datei aus der fir Kommandoen ze liesen (e Shellskript) an déi aner Argumente ginn als positional Parameter vun der Shell festgesaat ($ 1 , $ 2, etc). Soss weist d'Shell Kommandoe vu senger normaler Input.

Argument Lëscht Processing

All déi eenzel Beschreiwungsoptiounen hunn e korrespondéierte Numm deen als Argument vun der - o Optioun benotzt ka ginn. De Set - o Numm ass niewend dem eenzegen Bréifoptioun an der Beschreiwung méi nogekuckt. Dir wëllt e Strëch `` - '' loossen d'Option op, wann Dir e Plus `` + '' benotzt, deaktivéiert d'Optioun. Déi folgend Optioune kënnen aus der Kommandozeechnung oder mam Set (1) gebaut ginn (beschriwwen spéit).

-a allexport

Export all Variablen déi zugewielt ginn. (BESTËMMTEET fir 4,4alpha)

-c

Liest Befehle vun der Kommandozeil. Keng Kommandoen gi vun der Standardeingriff geliest ginn.

-C Noklobber

Konnt déi existéiert Dateien net überschriwwe mat ``> '' (UNIMPLEMENT fir 4.4alpha)

-e errexit

Wann net interaktiv ass, beäntweren direkt wann et onbekannt ass. Den Ausstiegsstatus vun engem Kommando gëtt als explizit gepréift, wann de Kommando benotzt gëtt, wann een elif gedréckt ass oder bis oder wann de Kommando de lénksen Operne vun engem `` && 'oder `` ||' 'Betreiber ass.

-f noglob

Virgang Expansioun z'aktivéieren .

-n noexec

Wann net interaktiv, Liesbefehlen, maacht se se net aus. Dëst ass nëtzlech fir d'Syntax vun de Shellskripte ze kontrolléieren.

-u Klengaktioun

Schreft e Message un Standardfehler wann probéiert e variabelen Ausbau ze vergréisseren, deen net festgeluecht gëtt, a wann d'Shell net interaktiv ass, réckt direkt op. (BESTËMMTEET fir 4,4alpha)

-v verbose

De Shell schreift seng Input fir Standardfehler wéi et geliest gëtt. Nëtzlech fir Debuggen.

-x xtrace

Schreift all Kommando op Standardfehler (virdrun vun engem '+', ier et ausgeführt gëtt. Nëtzlech fir Debuggen.

-q rdeprofil

Wann d - v oder - x Optiounen festgeluegt goufen, gitt se net un, wann Initialiséierung Dateien gelies, déi se / etc / profile .profile an déi Datei déi vun der ENV-Ëmännerlecher variéiert gëtt.

- Ech ignoréieren

Ignoréieren d'EOF aus der Input wann et interaktiv ass.

-i interaktiv

Force d'Shell z'entwéckelen.

-m Monitor

Verännerech d'Kontroll kontrolléiert (automatesch gesitt wann et interaktiv gëtt).

-s stdin

Liest Befehle vu Standardeingabe (automatësch gesaat, wann keng Datei Argumenter present sinn). Dës Optioun huet keng Auswierkung wann se no der Schuel gesat ginn ass scho mat dobäi gestouss (dh mat Set (1)).

-V vi

Aktivéiert den built-in vi (1) Kommandozeechen- Editor (deaktivéiert - E wann et opgeriicht gouf).

-E Emacs

Aktivéiert den emakéierten (1) Kommandozeechen- Editor (deaktivéiert - V wann et opgesat ass).

-b

Aktivéiert asynchrone Benotzung vun enger Fondatioun fäerdëg. (BESTËMMTEET fir 4,4alpha)

Lexikalesch Struktur

De Shell liest d'Input ausdrécklech wéi d'Zeilen aus engem Fichier an brécht et op Wëssenswahlen (Blanken a Tabs), a bei bestëmmten Sequenzen vun Charakteren, déi speziell der Shell genannt "Betreiber" sinn Et ginn zwou Typen vun Operatoren: Kontrollbetreiber a Redirectiounsbetreiber (hir Bedeitung gëtt spéit besprach). Hei ass eng Lëscht vun de Betreiber:

"Kontrollbetreiber:"

& && (); ;; | ||

"Redirection Operator:"

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

Quoting

De Quotéierten ass benotzt fir d'Besonnesch Bedeitung vu verschiddene Zeechen a Wierder zu der Shell ze entfernen, wéi zB Betreiber, Whitespace oder Schlësselwieder. Et ginn dräi Zorte vu Quotéierten: matzedeelen eenzel Zitaten, mat douce Quotes a Matchstouss.

Backslash

A Backslash behënnert déi literaresch Bedeitung vum Charakter, mat Ausnam vun Aq Newline. E Backscreen viru sengem Aq Newline gëtt als Line Continuatioun behandelt.

Single Quotes

D'Zeecheketten an eenzel Zitaten behalen déi literaresch Bedeitung vun alle Charaktere (ausser eenzel Zitater, et gëtt et net méiglech fir een Zitater an enger eenzeger zitéiert Sait ze setzen).

Double Quotes

D'Zeechekennunge bannendert duebel Zitater behalen déi literal Bedeitung vun all Charakterer ausser Dollarignal ($) Backquote (`) a Réckschësse (\) De Réckschlaang an Doppeldeseleg ass historesch komësch, a gitt nëmmen fir dës Zeechen ze verkënnegen:

$ `\

Sinn et bleift wuertwanneg.

Reservéiert Worte

Reservéiert Wierder si Wierder déi speziell Bedeitung vum Shell hunn an am Ufank vun enger Linn an no engem Kontrolloperateur erkannt ginn. Déi folgend Reservéierunge woren:

!! Ta elif Ta fi Ta während Ta Fall

Tait Ta fir Ta dann Ta {Ta}

Ta Ta Ta Ta bis Ta si Ta esac

Hir Bedeitung gëtt spéider diskutéiert.

Aliases

En Alias ​​ass e Numm an en entspriechende Wäert dee mat dem alias (1) builtin command war. Wann e reservéiert Wuert geschitt (kuckt uewen), a no der Ufro fir reservéiert Worte kontrolléiert d'Shell de Wuert fir ze kucken, ob et mat engem Alias ​​mat engem Match passéiert. Wann et et geet, ersetzt se et an den Input Stream mat sengem Wäert. Zum Beispill, wann et en alias called `` lf '' ass mat dem Wäert "ls -F", dann ass d'Input:

lf foobar

géif ginn

ls -Froobar

Aliases sinn eng praktesch Aart a Weis fir naiv Benotzer ze späicheren fir Kommandoen ze schaffen ouni ouni ze léieren wéi d'Funktiounen mat Argumenter ze kreéieren. Si kënnen och benotzt ginn fir lexikalesch obskure Code ze maachen. Dës Benotzung ass decouragéiert.

Commands

De Shell interpretéiert d'Wierder déi se laut enger Sprooch liest, déi Spezifikatioun vun deenen ausserhalb vum Ëmfang vun dëser Man Page ass (kuckt de BNF am Dokument POSIX 1003.2). Wärendlech ass et eng Linn geliwwert a wann d'éischt Wuert vun der Linn (oder no engem Kontrollbedierfner net reservéiert Wuert ass), dann huet d'Schuel e einfache Kommando erkannt. Soss kann en komplexe Kommando oder e puer anere speziellen Konstrukt erkannt ginn.

Einfache Kommandë

Wann e einfachen Kommando erkannt gouf, féiert d'Shell déi folgend Aktiounen:

  1. Leading Wierder vun der Form `` Name = Wäert '' ginn aus dem Ëmfeld vum einfachen Kommando abezunn. Redirection Operatoren an hir Argumenter (wéi et hei beschriwwe gëtt) ginn ausgefouert a gespäichert.
  2. Déi verloossene Wierder ginn erweidert wéi et an der Rubrik "` Expansions "beschriwwe gëtt an d'éischt weider Wierder gëtt als Kommandant ugesat an de Kommando läit. Déi weider Wierder ginn als Argumenter vum Kommando ugesinn. Wann kee KommandoName- a Succès entsteet, befaasst den Numm 'value =' variable Variatiounen, déi am Punkt 1 erkannt ginn, der aktueller Shell.
  3. Redirections ginn esou gemaach wéi an de nächste Sektioun beschriwwen.

Redirections

Redirections ginn benotzt fir z'änneren, wou e Kommando seng Input liest oder säin Output schéckt. Allgemeng, Nei Rechter öffnen, schloe oder en Duplikat e bestehende Referenz op enger Datei. De generelle Format fir d'Ofleckung benotzt gëtt:

[n] redir-op Datei

wou redir-op eng vun de sougenannte Ëmännerungsanweiser ass. Hei ass eng Lëscht vun de méiglechen Ofleefungen. De Bq n ass e optionale Zuel, wéi an `3 '(net` Bq 3', dat op eng Datei Dossier steet.

[n]> Datei

Redirect Standardausgang (oder n) fir ze lueden.

[n]> | Fichier

Selwecht, awer d'Opschrëft - C opmaachen.

[n] >> Datei

Fëllt déi normale Ausgab (oder n) fir ze fileéieren.

[n]

Redirect Standardeingriff (oder n) aus Datei.

[n1] <& n2

D Duplizéierter Standardeingang (oder n1) aus Dateibeschreiwe n2.

[n] <& -

Zoumaachen Standardeingriff (oder n).

[n1]> & n2

Doppele Standardausgang (oder n1) vun n2.

[n]> & -

Zoumaachen vun der normaler Ausgab (oder n).

[n] <> Datei

Datei opmaachen fir ze liesen an ze schreiwen op normale Input (oder n).

Déi folgend Ofleckung ass oft als `` Here Document '' genannt.

[n] << Begleeder

hei-doc-text ...

Mesuren

All Texter op sukzessive Linnen bis zum Oflehnungsmechanismus ass gespäichert a gëtt dem Kommando vum Standardeingesignal agefouert, oder Dateibeschreiwe n wann et ugewise gëtt. Wann de Begleeder wéi op der Ufuereg ugewise steet, zitéiert, da gëtt den hei-doc-Text wuertwiertlech bewisen, soss gëtt de Text parapetär Expansioun, Kommandosubstitut a arithmetesch Expansioun ausgesandt (wéi an de Rubriken "Expansions" genannt) 'Wann de Betreiber' `<< - '' anstatt '` <<' 'sinn, dann fänken Tabs am Dokter Doktertext aus.

Sichen a Virgoen

Et ginn dräi Typen vun Kommandoen: Shellfunktiounen, gebaute Kommandoen an normale Programmer - an de Kommando gëtt an deem Bestand fir (no Numm). Si ginn all op eng aner Manéier ausgeführt.

Wann eng Shellfunktion ofgesat gëtt, ginn all d'Shell Positionsparameter (ausser $ 0, déi net geännert bleiwen) op d'Argumenter vun der Shellfunktion geluecht. D'Variabel, déi explizit an d'Ëmwelt vum Kommando plazéiert ginn (duerch d'Verëffentlechung vun hirem Verëffentleche virun der Funktiounsname) ginn lokal zu der Funktioun gemaach an op déi Wäerter festgeluegt. Da gëtt de Kommando an der Funktioun Definitioun gemaach. D'Positiounsparameter sinn op hir ursprénglech Wäerter zréckgezunn wann de Kommando ofgeschloss ass. Dëst gleeft alles an der aktueller Shell.

D'Shell-Buedere sinn intern mat der Shell ausgefouert ginn, ouni eng nei Prozedur ze schaafen.

Anescht wéi wann de KommandoName net mat enger Funktioun oder am Bau ass, gëtt de Kommando als normale Programm am Filesystem gesicht (wéi am nächste Abschnitt beschreift). Wann e normale Programm ausgezeechent gëtt, féiert de Shell de Programm, iwwer d'Argumenter an d'Ëmwelt ze programméieren. Wann d'Programm net e normale ausféierbar Datei ass (dh wann et net mat der "Zauberennummer" begleet gëtt, wou d' ASCII representéiert ass "#!", So fënnt (2) Er ENOEXEC dann zréck.) D'Shell wäert d'Programm an engem Ënnerwelt. D'Kannerbunn ëmbrénge sech selwer an dësem Fall weider, fir datt den Effekt als ob eng nei Shell opgeruff gouf fir den Ad-hoc-Skript Skript ze behandelen, ausser dass de Standort vun Hashbefehlen an der Elterhéijung erënnert gëtt Kand.

Remarkéiert datt fréier Versioune vun dësem Dokument an de Quellcode selwer falsch a sporadesch bezéien op e Shellskript ouni Zaubergummer als "Shellprozedur".

Path Sich

Wann een e Kommando ze lokaliséieren, gesäit d'Shell zuer eregoen ze gesinn, ob et eng Shellfunktion duerch dësen Numm huet. Duerno kuckt et eng gebaute Kommando mat dësem Numm. Wann en Gebai gebaut ass net fonnt, ee vun zwee Saachen passéiert:

  1. Commandennamen, déi e Schräin befannen, ginn einfach ausgefouert, ouni keng Recherche ze maachen.
  2. De Shell beméit sech all Eelefmeter an PATH no der Commandatioun. De Wäert vun der PATH Variable soll eng Serie vun Eegeschaften vun de Kolonien getrennt sinn. Jidder Eintrag besteet aus engem Verzeichnisnumm. De aktuellen Dossier däerf implizit vun engem eegene Verzeechnesnam uginn oder explizit duerch e puer Perioden.

Command Exit Status

All Kommando huet e Status vun der Ausgab, déi den Verhalens vun aneren Shell Kommandoen beaflossen kann. De Paradigma ass datt en Kommando ouni Null fir normal oder Erfolleg gëtt an ouni Null fir Versoen, Fehler oder e falschem Hinweis. Déi Mann Säit fir all Kommando soll déi verschidden Exitcodes a wat se bedeit. Zousätzlech erënneren d'Gebaierbefehlen d'Ausgabscode zréck, wéi et eng ausgefouert Shellfunktion funktionnéiert.

Complex Commands

Komplex Kommandoen sinn Kombinatioune vu einfache Kommandë mat Kontrollbetreiber oder reservéiert Wuere zesummen, déi e groussen komplexe Kommando maachen. Am allgemengen ass e Kommando een vun den folgenden:

  • einfache Kommando
  • Pipeline
  • Lëscht oder Compound-Lëscht
  • Verbindung
  • Funktioun Definitioun

Wann net anescht uginn ass, ass den Ausgabestatus vun engem Kommando dee vum letzte einfache Kommando, dee vum Kommando gemaach gëtt.

Pipelines

Eng Pipeline ass eng Sequenz vun engem oder méi Befehle getrennt vum Kontrolleroperateur |. De Standardausgang vun all dem leschte Kommando ass mat der Standarde vum nächste Kommando verbonne ginn. De Standardausgang vum leschte Kommando ass vun der Shell geheescht, wéi ëmmer.

De Format fir eng Pipeline ass:

[!] command1 [| Kommando2 ...]

De Standardausgang vum command1 ass mat der Standarde vum command2 verbonnen. Déi Standardeingabe, Standardausgang oder béid engem Kommando ass als déi vun der Pipeline ugesinn ugesoot, ier irgendëer Ofleckung déi vun den Ëmännerungsoperateuren spezifizéiert sinn, déi Deel vum Kommando sinn.

Wann d'Pipeline net am Hannergrond (spéider diskutéiert) waart, wielt d'Schuel nach all Kommandoen eriwwer.

Wann de reservéierten Wuert! fiert net un der Pipeline, de Exitstatus ass den Ausgabestatus vum leschte Command an der Pipeline. Soss gëtt de Status vun der Ausgabung de logesche NOTO vum Ausstiegsstatus vum leschte Kommando. Dat ass, wann de leschte Kommando null gëtt, de Status vun der Ausgab 1; Wann de leschte Kommando méi grouss wéi Null gëtt, gëtt de Status vun der Ausgab null.

Well Pipelinezuignaliséierung vun Standardeingunge oder Standardausgang oder béid béid Re vun der Redirectioun stattfënnt, kann et geännert ginn duerch Ëmleitung. Zum Beispill:

$ command1 2> & 1 | command2

Si schreift d'standard Ausgab an de Standardfehler vum Kommando1 an den Standarde vum Command2.

A; oder Terminator verursaacht d'Virgänger AND-OR-Lëscht (beschreiwt nächste) no sequentiell ausgefouert; a verursacht asynchron Ausféierung vun der virdru ugebueden AND-OR-Lëscht.

Opgepasst datt am Géigesaz zu verschiddene Schellbicher all Prozess an der Pipeline e Kand vun der Rufnummer ass (ausser et ass en Buedem gebaut, an deem Fall wou se an der aktueller Shell handelt - awer all Effekt deen et op der Ëmwelt gëtt geläscht).

Background Commands -

Wann e Kommando duerch de Kontrolloperateur ampersand (&) beoptraff ass, féiert d'Shell asynchron d'Befehl - dat heescht, d'Shell waart net fir de Kommando ze schécken, ier de nächste Kommando ausgefouert gëtt.

De Format fir e Kommando am Hannergrond ze lafen ass:

command1 & [command2 & ...]

Wann d'Shell net interaktiv ass, gëtt de Standardeingriff vun engem asynchronen Kommando op / dev / null gesat

Lists - Allgemeng Sprooch

Eng Lëscht ass eng Sequenz vu Null oder méi Befehle vu NewLines, Semikolons oder Aperitifs getrennt a wahrscheinlech vun engem vun dësen dräi Charakteren ofgeschloss. D'Commanden an enger Lëscht ginn an der Uerdnung ausgeführt déi se geschriwwe sinn. Wann de Kommando gefollegt vun engem Ampersand ass, fiert d'Shell de Kommando a fänkt direkt op de nächste Kommando fort. En anert waart op de Kommando ze korrigéieren, ier Dir op déi nächst sidd.

Short-Circuit List Operatoren

`` && '' an `` || '' sinn AND-OR Lëscht Operatoren. `` && '' executéiert de éischten Kommando aus, a féiert dann den zweete Kommando aus, wann de exitstatus vum éischte Kommando null ass. `` || '' ass ähnlech, maacht den zweete Kommando aus, wann de exitstatus vum éischte Kommando netzero ass. `` && '' an `` || '' 'hunn déi selwecht Prioritéit.

Flow-Kontroller konstruéiert - wann, während, fir, Fall

D'Syntax vum Kommando ass

wann Dir Lëscht
dann ze sichen
[Lëscht vum Elif
dann Lëscht] ...
[aner Lëscht]
Fi

De Syntax vun der Zäit ass komm

laang Lëscht
Lëscht ze maachen
gemaach

Déi zwou Lëschte ginn ëmmer méi ausgeführt, wann de exitstatus vun der éischt Lëscht null ass. De bis de Kommando ass ähnlech, awer huet d'Wuert bis an d'Plaz vun der Zäit, dat verursaacht dat erëm ze goen bis de Ausgangszoustand vun der 1. Lëscht null ass.

D'Syntax vum Kommando ass

fir Variabel am Wuert ...
Lëscht ze maachen
gemaach

D'Wierder ginn erweidert an da gëtt d'Lëscht ëmmer erëm mat der Variabel, déi fir all Wuert ëmgeet. Dir kënnt a Wierder ersat ginn duerch `` {'' an ``} ''

D'Syntax vun der Paus an et weider Kommando ass

Break [num]
weider [num]

D'Break endet déi num nömmen fir oder während d'Loops. Fuert weider mat der nächsten Iteratioun vun der Intersten. Dës ginn als Gebaibefehl implementéiert.

D'Syntax vum Case Kommando ass

Wuert am
Muster) Lëscht;
...
esac

De Muster kann tatsächlech een oder méi Muster sinn (kucke Shell Patterns spéider méi beschriwwen), getrennt vun `` 'Charakteren.

Gruppement Commands Together

Commands kënnen och grëndlech agedeelt ginn

(Lëscht)

oder

{Lëscht;

Déi éischt vun deenen féiert d'Befehle an enger Skala. Builtin Kommandoe gruppéiert an e (Lëscht) beaflosst d'aktuell Shell net. Déi zweet Form fuerdert net eng aner Schuel, sou eppes ass méi efficace. Gruppéierungsbefehl zesummen dës Manéier erlaabt Iech hir Ausgab auszetauschen, wéi wa se ee Programm haten:

{printf hello; printf Welt \ n ";}> Begréissung

Functions

D'Syntax vun enger Funktiounsdeelung ass

Numm () Kommando

Eng Definitiounsfunktioun ass eng ausführbar Ausso; wann se ofgeschalt ass, installéiert eng Funktioun mam Numm a gitt e Exitstatus vun Null. De Kommando ass normalerweis eng Lëscht tëschent `` {'' an ``} ''

Variablen kënne deklaréiert ginn, lokal zu enger Funktioun ze ginn, andeems ee lokal Kommando benotzt. Dëst sollt als éischt Erklärung vun enger Funktioun äntweren an d'Syntax ass

lokal [variabel | -] ...

Lokal gëtt als gebauter Kommando agefouert.

Wann eng Variabel lokal gemaach gëtt, kritt hien den urspréngleche Wäert an exportéiert a liest vu de Variabelen mat dem selwechte Numm am Ëmfeld, wann et een ass. Sinn d'Variabel ursprünglech ursprünglech. De Shell benotzt dynamesch Scoping, fir datt Dir d'Variabel x lokal f function f féiert, déi d'Funktioun g gitt, referenzéiert op d'Variable x, déi innerhalb vu g geleet gëtt, bezitt op déi Variabel x, déi an der f fusionéiert ass, net op déi global Variable déi de x .

Deen eenzegen speziellen Parameter wéi kann lokal gemaach ginn `` - '' '`` `' 'lokal lokal Schirmoptiounen, déi iwwer de Set-Command innerhalb vun der Funktioun geännert ginn fir hir ursprénglech Wäerter nees zréckzetrieden wann d'Funktioun zréck ass.

De Syntax vum Kommando zréck ass

[exitstatus

Hien beoptraagt ​​déi aktuell Ausféierung. Zréck gëtt als gebautent Befehl implementéiert.

Variablen a Parameter

De Shell ënnerhält eng Rei Parameter. Een Parameter mat engem Numm gëtt genannt variabel. Wann et opgemaach ass, dreift d'Shell all d'Variabilitéiten vum Ëmfeld an de Shell-Variablen. Nei Variablen kënne mat dem Formulaire festgesat ginn

Numm = Wäert

Variablen, déi vum Benotzer festgeluegt musse ginn, mussen e Numm hunn, dee nëmmen aus Alphabetik, Zifferen a Ënnerscore besteet - déi éischt däerf net numeresch sinn. E Parameter kann och mat enger Zuel oder e spezielle Charakter bezeechent ginn, wéi et weider erkläert gëtt.

Positional Parameter

Eng Positiver Parameter ass e Parameter mat enger Nummer (n> 0) bezeechent. De Shell setzt dësst éischt op d'Wäerter vun hiren Kommandozeileng Argumente déi de Numm vum Skript Skript befollegen. De Set (1) gebaut kann och benotzt ginn fir se ze setzen oder ze resetéieren.

Spezial Parameter

En spezielle Parameter ass e Parameter, deen duerch eng vun den folgenden Sonderszeechen ass. De Wäert vum Parameter gëtt nieft sengem Charakter geliwwert.

*

Erweidert op déi Positional Parameter, vun enger. Wann d'Expansioun bannent engem doppelter zitéierter Zeechong opgetrueden ass, gëtt et zu engem eenzegen Feld mat dem Wäert vun all Parameteren, déi duerch den éischte Charakter vun der IFS Variablen getrennt ginn, oder duerch e getrennt ginn, wann d' IFS net ofgeschloss ass.

@

Erweidert op déi Positional Parameter, vun enger. Wann d'Expansioun am Dual-Quotes geschitt, gëtt all Positio-Parameter als separate Argument erweidert. Wann et keng Positivparameter gëtt, erweidert d'Expansioun vu @ Null Argumenter, souguer wann @ duebel zitéiert gëtt. Wat dat grondsätzlëcht heescht, zum Beispill, wann $ 1 '`abc' 'ass an $ 2'` def ghi '', dann Qq $ @ erweidert op déi zwee Argumenter:

abc def ghi

#

Erweidert op d'Zuel vun Positional Parameteren.

?

Erweidert op den Ausstiegsstatus vun der jéngster Pipeline.

- (Bypass)

Erweidert op déi aktuell Optiounsmarken (déi eenzel Bréck Optiounsnamen an e String verkaf ginn) wéi op invokéieren, duerch de setin gebaute Kommando oder implizit vun der Shell.

$

Erweidert op d'Prozedur ID vun der beruffter Shell. E Subschuel behält den selwechte Wäert vun $ als sengem Elterendeel.

!!

Erweidert op d'Prozessprozedur vum jéngste Background Kommando aus der aktueller Shell ausgefouert. Fir eng Pipeline ass d'Prozedur ID vun deem leschte Kommando an der Pipeline.

0 (Zero.)

Erweidert den Numm vum Shell- oder Shellskript.

Begrënnung

Dës Klausel beschreiwt déi verschidde Expansiounen, déi op Wierder gemaach ginn. Net all Expansioune ginn op all Wuert gemaach, wéi et spéider erkläert gëtt.

Tilde Expansiounen, Parameter expansiounen, Kommandoenersatzpläng, arithmetesch Expansiounen an Zousatzentfernungen, déi an engem eenzegen Wuert geschéien, erweideren op e Feld. Et ass nëmme Feldspannung oder Pathname expansioun déi verschidde Felder vun engem eenzel Wuert ze schafen. Déi eenzeg Ausnahm op dëser Regel ass d'Expansioun vum spezielle Parameter @ innerhalb Dopingszoustand, wéi et uewe beschriwwe war.

D'Wuert vum Wuert Expansioun ass:

  1. Tilde Expansioun, Parameter Expansioun, Command Substitutioun, arithmetesch Expansioun (déi alleguer gläichzäiteg passéieren).
  2. Feldspannung gëtt op Felder, déi duerch Schrëtt (1) generéiert ginn, ausgeschalt ass, ausser datt d' IFS- Variabel net null ass.
  3. PathName Expansioun (ausser set - f ass effektiv).
  4. Zitat Removal.

De $ Zeechen ass benotzt fir d'Parameter Expansioun, Kommandabsetzung oder arithmetesch Evaluatioun z'ënnerstëtzen.

Tilde Expansioun (Erstelle vum Benotzer 's home directory)

E Wuert mat engem ongeschriwwenen Tilde-Charakter (~) gëtt ënner anerem bis hin zu Ausdehnung ausgesat. All Zeeche bis zu engem Schlëssel (/) oder dem Enn vum Wuert ginn als Usazzeelung behandelt an ersat duerch de Benotzer's Home directory. Wann de Benotzernumm fehlt (wéi an ~ / foobar) ass de Tilde ersaat duerch den Wäert vun der HOME Variablen (dem aktuelle Verloscht vum aktuellen Benotzer).

Parameter Expansioun

De Format fir d'Parameteren erweidert ass wéi folgend:

wou d'Expression besteet aus all Charakterer bis déi passend ``} '' All ``} '' entfouert duerch e Réckschësse oder innerhalb enger zitéierter Zeecheklaratioun, an d'Zeeche vun embedded arithmetesche Expansiounen, Kommandoenersatz a variabel Expansiounen, ginn net un der Bestimmung vun der passend ``} ''

Déi einfach Form fir Parameter Expansioun ass:

De Wäert, wann iergendeen, vum Parameter ersetzt.

De Parameter Numm oder Symbol kann an Hänn geschloen ginn, déi optional sinn, ausser a Positionsparameter mat méi wéi enger Ziffer oder wann de Parameter mat engem Charakter gefollegt gëtt, deen als Deel vum Numm interpretéiert gouf. Wann eng Parameter Expansioun am Doppelpunkt geschitt:

  1. D'Expansioun vum Path heescht net op d'Resultater vun der Expansioun.
  2. D'Feldspaltung gëtt net u Resultater vun der Expansioun ugewisen, ausser @.

Zousätzlech kann eng Parameter Expansioun modifizéiert ginn mat engem vun den folgenden Formaten.

Standardgréisst benotzen. Wann de Parameter net ongëlteg oder net ass, gëtt d'Expansioun vum Wuert ersetzt; soss ass de Wäert vum Parameter ersat.

Assignéieren Standard Default. Wann de Parameter net ongëlteg oder net ass, gëtt d'Expansioun vum Wuert dem Parameter zugewielt. An all de Fäll ass den definitiven Wäert vum Parameter ersat. Nëmmen Variablen, net Positionalparameter oder spezielle Parameter, kënnen esou opginn ginn.

Feeler ufänken wann Zoll oder Unzuel sinn. Wann de Parameter net ofgeschaaft oder ongewollt ass, gëtt d'Expansioun vum Wuert (oder eng Meldung, déi et ze weisen ass net ofgeschnidden, wann d'Wuert net ausgelauschtert gëtt) op Standardfehler geschriwwe gëtt an d'Shell ofgesinn huet mat engem Status nonzero exit. Soss gëtt de Wäert vum Parameter ersetzt. Eng interaktive Shell muss net erlaabt sinn.

Benotzt Alternativ Wäert. Wann de Parameter net onbedéngt oder net ass, gëtt d'Null ersetzt; soss ass d'Expansioun vum Wuert ersat.

Bei de Parameter Expansiounen déi et scho virdru benotzt ginn, fënnt d'Verwuerzelung vum Doppelpunkt am Format zu engem Test fir e Parameter deen net ofgeschalt gouf oder net. Auslaaf vun de Colon ergëtt sech zu engem Test fir e Parameter deen nëmmen ongewollt ass.

String Längt. D'Längt an Zeeche vum Wäert vum Parameter.

Déi folgend Fournisseuren vun der Parameterexpansion erlaaben Substringveraarbechtung. A jidder Fall, mat Muster mat enger Notation (kucke Shell Patterns), anstatt Regular Ausdréck Notation, gëtt benotzt fir d'Muster ze evaluéieren. Wann de Parameter * oder @ ass, gëtt d'Resultat vun der Expansioun net spezifizéiert. Enseignéieren der voller Parameter Expansiounsstring an Doubletten zitéiert net déi folgend véier Varianten vun Musterfiguren ze zitéieren, während Ziicke vun Zeechen innerhalb der Klammern bewirkt huet.

Déi klengst Suffix Muster erofhuelen. Dëst Wuert gëtt ausgebaut fir e Muster ze produzéieren. D'Parameterexpansion erantéiert dann de Parameter, mat dem klengen Deel vum Suffix deen mat dem Muster geläscht gëtt.

Gréisst Suffix Muster erofhuelen Dëst Wuert gëtt ausgebaut fir e Muster ze produzéieren. D'Parameter Expansioun féiert zum Parameter no, mat de gréissten Deel vum Suffix deen mat dem Muster geläscht gëtt.

Déi klengst Präfixstéckel. Dëst Wuert gëtt ausgebaut fir e Muster ze produzéieren. D'Parameterexpansion erantéiert dann de Parameter, mat dem klengen Deel vun der Präfix mat dem Muster geläscht.

Gréisst Prefix Pattern. Dëst Wuert gëtt ausgebaut fir e Muster ze produzéieren. D'Parameterexpansion erantéiert dann de Parameter, mat dem gréissten Deel vum Präfix, mat dem Muster geläscht.

Command Substitution

Kommando Substitutioun erméiglecht d'Ausgab vum Kommando op Plaz vum Kommando name selwer ersetzt. Kommando-Substanz passéiert wann de Kommando wéi folgend beaflosst ass:

$ (Kommando)

oder Po `` backquoted '' Versioun Pc:

`Kommando`

De Shell erweitert d'Kommando ofgetrennt andeems Dir Kommando an enger Skala vun SubShell ausgezeechent gëtt an ersetzt d'Kommando-Substanz mat der Standardausgang vum Kommando, déi Sequenzen vun engem oder méi s am Enn vun der Substitutioun ofgeschnidden. (Embedded s virum Enn vun der Ausgab net ginn ofgesprengt, awer bei der Feldspaltung kënnen se op s, abhängig vu den IFS- Wäert, an zitéiert dat iwwersetzt.)

Arithmetesch Expansioun

D'Arithmetesch Expansioun bitt e Mechanismus fir d'Auswertung vun enger arithmetescher Ausgrenzung an d'Ersatz vun hirem Wäert. De Format fir d'arithmetesch Expansioun ass wéi folgend:

$ ((Ausdrock))

De Ausdrock gëtt behandelt wéi wann se an duebel Quartieren waren, ausser datt e Duebelinn an den Expression net speziell behandelt gëtt. De Shell erweitert all Tokene beim Ausdrock fir Parameterexpansion, Commandersubstanz a Kreditt Ofhuele.

Nees, behält d'Schell als e arithmetesche Ausdrock an ersetzt den Wäert vum Ausdrock.

White Space Splitting (Splitting)

No der Parameter Expansioun, Kommandéierung a arithmetesch Expansioun scannt de Shell d'Resultater vun Expansiounen an Auswiesselungen, déi net an Duebelquoten fir Feldspart opgetruede sinn a verschidde Felder kënnen entstoen.

De Shell behandelt all Charakter vun den IFS als Entschiedegung an benotzt d'Trennverhältnisser, fir d'Resultater vun der Parameter Expansioun an Kommandabsetzung a Felder ze spalten.

PathName Expansioun (Dateinameeratioun)

Wann net de F - Flagge ass festgeluecht ginn, gëtt d'Generatioun vum Dateie name ausgezeechent wann d'Wuertespaut ofgeschloss ass. All Wuert ass wéi eng Serie vu Mustere ginn, déi duerch Schlësselen getrennt sinn. De Prozess vun Expansioun ersetzt den Text mat den Nimm vun alle existente Fichier, déi Nimm maachen, andeems se all Muster mat enger Sait ersetzen, déi mat dem spezifizéierte Muster entsprécht. Et ginn zwou Restriktiounen: éischtens e Muster kann net mat engem String mat engem Schlëssel passen, an zweetens ass e Muster net mat enger Sauer mat engem Zeechstëmmung mat engem Zäitraum ugefaangen, ausser wann de Zeeche vun engem Muster e Moment ass. De nächste Abschnitt beschreibt d'Muster déi fir d'PathName Expansion an de Fall (1) gebraucht ginn.

Shell Patterns

Ee Muster besteet aus normale Charaktere, déi sech matenee a Meta-Charakter matspillen. D'Meta-Charaktere sinn ``! `` `* ''` ``? '' An `` ['' Dës Zeechen verléieren hir besonnesch Bedeitung wann se zitéiert sinn. Wann de Kommando oder d'Variablen ersetzt gëtt an d'Dollar Zeechen oder d'Backzoumeren net verdoppelt ginn, gëtt de Wäert vun der Variabel oder der Ausgab vum Kommando op dës Zeechen gescannt an si ginn an Meta-Charaktere gedréckt.

Een Asterisk (`` * '') entsprécht all Zeecheketten. Eng Fro gëtt mat engem eenzegen Charakter. Eng lénks Halterung (`` ['') stellt eng Charakter-Klasse. Den Enn vun der Zeecheklass gëtt duerch e (``] '' bezeechent) wann d'``] '' fehlt ass dann d'`` ['' mat engem '`[' 'anstatt eng Zeecheklass plazéiert. Eng Charakter Klasse passt mat engem vun den Zeechen tëscht de klenge Klammern. Eng Rei vu Charaktere kënnen mat engem Minus-Zeeche spezifizéiert ginn. D'Character Class kann ofgeschloss ginn, andeems en Ausrufezuel den éischte Charakter vun der Character-Klasse mécht.

Fir e "`]] "an enger Character-Klasse befaassen, maacht dat den éischte Charakter (nee nach" `!"). Fir e Minus ze schreiwen, maacht et de éischten oder de leschten Charakter

Builtins

Dëst Kapitel liest déi Gebaierbefehl, déi gebaut ginn, well se e puer Operatiounen ausführen ze kënnen déi net duerch e separate Prozess gemaach ginn. Zousätzlech zu deenen, et ginn e puer aner Kommandoen, déi fir Effizienz gebaut ginn sinn (zB Echo 1).

:

E null Kommando, deen e 0 (richteg) Ausgabewert zréckkommt.

. Fichier

D'Kommandoen an der spezifizéierter Datei ginn aus der Shell gelies an ausgefouert.

Alias [ Numm [ = String ... ]]

Wann den Numm = Zeechne gëtt spezifizéiert, definéiert de Shell den Alias Numm mat Wäertkreesser Wann just den Numm spezifizéiert gëtt, gëtt de Wäert vum Alias Numm gedréckt. Duerch Argumenter huet de Alias gebaut d'Nimm an d'Wäerter vun all definéierte Aliasen (vgl. Unalias)

bg [ job] ...

Fannt déi bestëmmten Aarbechte (oder déi aktuell Aarbecht, wann keng Aarbechten ginn) am Hannergrond.

Kommandant Arg ...

Maacht de Buedem gebaut. (Dëst ass nëtzlech, wann Dir eng Shellfunktioun hutt mat dem selwechte Numm wéi e gebauter Command.)

CD [ Verwalde ]

Schreift op de spezifizéierte Verdeelung (default $ HOME) Wann eng Ereechung fir CDPATH an der Ëmwelt vum CD Kommando ersat gëtt oder d'Shell-Variabel CDPATH gespaart gëtt an de Verzeichnisname net mat engem Schrëft beginn, da sinn déi Verëffentleche klickt op CDPATH gespaart fir de spezifizéierte Verzeichnis. De Format vun der CDPATH ass déi selwecht wéi déi vum PATH Bei enger interaktiver Shell gëtt de Befreiung vum CD den Numm vum Verëffentleche gedréckt, dat tatsächlech ëmgeschalt gëtt, wann dat net anescht wéi den Numm deen de Benotzer huet. Dës kënnen ënnerschiddlech sinn, well de CDPATH Mechanismus benotzt gouf oder well e symboleschen Link gekrosselt gouf.

eege Beweis ...

Ketten all d'Argumenter mat Raumfaart. Fëllt dann de Parzellen zréck a parfait.

[[ arg arg ... ]

Et gëtt näischt ouni Kommando weg, de Shell-Prozess gëtt duerch e spezifizéierte Programm ersat (dat muss e realen Programm sinn, net e Shell-Buedem oder Funktioun). All Umännerungen am Command Kommando ginn dauerhaft markéiert, sou datt se net zréckgesinn ginn, wann d' Executiounskommissioun ofgeschloss ass.

Sortie [ exitstatus ]

Den Shellprozess beaarbecht. Wann exitstatus geheelt gëtt se als Ausgangsstatus vun der Shell benotzt; soss ass de Status vun der Ausgab vum kommende Kommando gebraucht ginn.

Export name ...

Export -p

Déi spezifizéiert Nimm sinn exportéiert ginn fir datt se an der Ëmwelt vun de folgenden Liwweren erscheinen. Déi eenzeg Méiglechkeet fir onofhängeg Export ze veränneren. D'Shell léisst de Wäert vun enger Variabel fir déi selwecht Zäit festleeën, déi se exportéiert

ExportName = Wäert

Keng Argumën heescht den Exportbefehl d'Nimm vun alle exportéierte Variablen. Mat der - p Options, déi uginn hutt, gëtt d'Ausgëftung zougemoossent fir net interaktive Benotze formuléiert.

fc [- e Redaktor ] [ éischt [ lescht ]]

fc -l [- nr ] [ éischt [ lescht ]]

fc -s [ al = neier ] [ éischt ]

De fc huet opgezielt oder verännert a re-executéiert, Kommandoen virdrun an eng interaktive Shell getraff.

-e Editor

Benotz den Editor deen den Editor geännert huet fir d'Befehle z'änneren. De Editor String ass e KommandoName, ënnert der Sich no de PATH Variable. De Wäert an der FCEDIT- Variabel gëtt als Standard definéiert wann - e net spezifizéiert ass. Wann FCEDIT null oder ongeschéckt gëtt, gëtt de Wäert vun der EDITOR- Variabel benotzt. Wann d' EDITOR null oder ongeschéckt gëtt, gëtt ed (1) als Redaktor benotzt.

-l (Ell)

Lëscht vun de Kommandanten anstatt e Redaktioun op hinnen ze ruffen. D'Kommandoe ginn an der Rei no geschriwwe vun den éischte an de laangen Operanden, wéi déi vu - bei all Kommando ofgezunn ass, déi vun der Kommandozuel no virgesi war.

-n

Kommt d'Nummeren ofdrécken andeems si mat -l.

-r

D'Reief vun de Kommandoen opgelëscht (mat - l oder geännert (mat weder - l - s)

-s

De Kommando auszeféieren ouni de Redaktor ze lueden.

éischten

lescht

Wielt déi Befehle fir ze listen oder änneren. D'Zuel vun de virdrun Kommandoe kënnen zougeruff ginn ginn duerch den Wert vun der HISTSIZE variabel . De Wäert vun der éischter oder leschter oder béid sinn eent vun den folgenden:

[+] Nummer

Eng positiv Nummer déi e Kommandozuel representéiert; Kommandozuelen kënnen mat der Option l opgewisen ginn.

-Nummer

En negativ Dezimalzuel representant d'Befehl, déi virdrun d'Zuel vun Kommandoen virdrun ausgezeechent gouf. Zum Beispill -1 ass d'direkt eischt Kommando.

String verlaangt

E String, deen den zënter kuerzem ugestréckten Kommando bezeechent gëtt, dee mat där Saach beginn. Wann de alen = neie Operand net och uginn gëtt mat der séng Stringform vum éischte Operanden kann net e embedded gleich zeechent sinn.

Déi folgend Environnementvariablen beaflossen d'Ausféierung vun fc:

FCEDIT

Numm vum Editor ze benotzen.

HISTSIZE

D'Zuel vun de virdrun Uergelen déi accessibel sinn.

fg [ Aarbechtsplaz ]

Gidd d'bestëmmt Aarbecht oder d'aktuell Aarbecht am Viraus.

getopts optstring var

De Kommando vu POSIX getoppt , net mam Bell Labs- verwiesselt getopt (1) ze verwiessele sinn.

Déi éischt Argument ass eng Rei Bréiwer, déi all wahrscheinlech vun engem Doppelpunkt gefollegt sinn, fir ze weisen datt d'Optioun e Argument brauch. D'Variabel ass definéiert op d'Analyse unhand.

De Kommandant getopts verëffentlechert déi al Versioun (1) Utilitéit duefir d'Handhabung vun Argumenter déi Whitespace hunn.

D' Gebaier erstallt kënne benotzt ginn fir Optiounen an hiren Argumenter aus enger Lëscht vun Parameteren ze kréien. Wann invokéiert ginn, plangt d'Opmaache vun der nächster Optioun aus der Optioun String an der Lëscht an der Shell Variablen, déi vu var spezifizéiert ass an et ass Index an der Shell-Variablen OPTIND Wann d'Shell opgeruff gëtt ass OPTIND initialiséiert ginn op 1. Fir all Optioun, déi erfuerdert e Argument, d' Gebaier déi gebaut sinn, plazéieren et an der Shell-Variabelen OPTARG Wann eng Optioun net an der Optrëtt zougelooss gëtt, dann OPTARG ofgeschloss ginn.

Optrëtt ass e String vun erkannten Optiounsbréiwer. Wann e Bréif gefollegt gëtt duerch e Colon, gëtt d'Optioun ugeholl datt e Argument fonnt huet deen ofgeschloe gouf oder net vun engem wäisse Raum ofgeschloss gouf. Wann e Optioun Zeechen net fonnt gëtt, wou wou erwuess ass, wäerte Getopeten d'Variabel var op eng ``? '' Getopts setzen d 'OPTARG ufänken an d' Ausgéch vum Write zu Standardfehler. Wann Dir e Colon wéi den éischte Charakter vun all Optriede benotzt , ginn se ignoréiert.

E nonzero-Wäert gëtt erëmbefouert wann d'lescht Optioun erreecht gëtt. Wann et nach net weider Argumenter ginn ass, ginn Zifferen op der Spezialoptioun variéiert. `` - '' Efalls gëtt et Var zu ``? '

Déi folgend Codefragment weist, wéi een d'Argumenter fir e Kommando verwalte kéint, deen d'Optiounen [a] an [b] an d'Optioun [c] huelen, wat e Argument brauch.

souwuel getopts abc: f
maachen
Fall $ f
a | b) flag = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; Ausfahrt 1 ;;
esac
gemaach
Schicht `expr $ OPTIND - 1`

Dëse Code akzeptéiert irgendeng vun den folgenden Elementer:

cmd -acarg Datei
cmd -a -c Arg Datei
cmd -carg -a Datei
cmd -a -carg - Datei

Hash-rv Kommando ...

De Shell ënnerhält eng Hash-Table, déi d'Stand vu Befehl erënnert. Et gëtt keng Argumenter, d' Hash- Kommando d 'Inhalter vun dësem Dësch. Entréen déi net nach gekuckt ginn sinn zënter dem lescht cd Kommando mat engem Stärekatalog markéiert ginn; Et ass méiglech datt dës Eegentungen ongëlteg sinn.

Mat Argumenter huet d' Hash- Kommando d'spezifizéiert Befehle vun der Hash-Tabelle ofgeschnidden (ausser si sinn Funktiounen) a se fanne se se un. Mat der V - Variante gedréckt d'Lokalitéite vun de Befehle wéi et se fënnt. De - r -Option bewirkt d'Hash-Kommando all d'Eegeschaften an der Hash-Tabelle ze läschen, ausser fir d'Funktioun.

jobid [ Aarbecht ]

Préift d'Prozedur Id vun de Prozesser am Job. Wann d'Argument vum Aarbechtsplatz wegléisst, gëtt déi aktuell Plaz gemaach.

Aarbecht

Dëst Kommando weist all d'Backgroundprozeduren aus, déi Kanner vum aktuellen Shell-Prozess sinn.

pwd

Dréckt den aktuellen Verwalten. De Buedembefehl kann sech vum Programm mam selwechte Numm ënnerschreiwen, well de builtin Kommando erënnere wat de aktuelle Verwalten eescht ass wéi d'Rekonceptioun vun all Kéiers. Dëst mécht et séier. Wann d'aktuell Verzeechnes ëmbenannt gëtt, gëtt d'Buedem-Versioun vum pwd weiderhin den alen Numm fir de Verzeichnis gedréckt.

liesen [- p prompt ] [- r ] variabel ...

D'Prompter ginn ausgedréckt, wann d'- p Option ugewise gëtt an déi Standardeingereptioun ass e terminaler. Duerno gëtt eng Linn aus der Standardeingriff geliest. De richteges Newline gëtt aus der Linn geläscht a gëtt d'Linn gespäichert wéi et am Abschnitt iwwer Wuert splitt ass, an d'Stécker ginn op d'Variablen an Uerder zugewielt. Wärend Dir misst eng Variabel uginn. Wann et méi Stécker wéi Variablen sinn, ginn déi aner Variatiounen (déi zesummen mat den Zeechen vun den IFS trennt) déi aner verdeelen. Wann et méi Variablen wéi Stécker sinn, ginn déi verännerlech Variablen déi Zollstéck. Déi lieseninstalléiert ginn Erfolleg wann et EOF op der Input ergaang ass, an deem Fall versäumt gëtt.

Par défaut, wann d'Option opruffen, ass de Réckschlaang `` \ '' als Auslaaschtcharakter, wouduerch de folgende Charakter léiwer getraff ginn. Wann e Réckschësster vun enger Newline gefollegt gëtt, gëtt de Backslash an d'Newline geläscht.

readonly Numm ...

readonly -p

Déi spezifizéiert Nimm sinn als nëmmen gelies markéiert ginn, sou datt se net duerno kënnen änneren oder net uerdentlech sinn. De Shell léisst de Wäert vun enger Variabel fir déi selwecht Zäit festgeluegt sinn, déi se nëmmen duerch Schreif markéiert ass

readonly Numm = Wäert

Et gëtt keng Argumenter, déi de readonly Kommando liesen déi Nimm vun alle Liesfäegkeeten. Mat der - p Options, déi uginn hutt, gëtt d'Ausgëftung zougemoossent fir net interaktive Benotze formuléiert.

set {{- options } + Optiounen | - arg ... ]

De Set ass e bësse performant.

Et gëtt keng Argumenter, et léisst d'Wäerter vun alle Shell-Variabelen op.

Wann d'Optiounen geheescht ginn, setzt se d'spezifizéierter Optiounsmarken oder liest se wéi an der Rubrik Sx Argument List Processing beschriwwen.

Déi drëtt Benotzung vum Set gesteet ass d'Wäerter vun de Positionsparameter vum Muschel un de spezifizéierte Arg ze setzen. Fir d'Positiv Parameter ze änneren ouni Äert Optioun ze änneren, benotzen `` - '' als éischt Argument fir ze setzen. Wann keen Argument present ass, gëtt de Set festgeluecht all Positio- närparameter (entsprécht dem Ausfëllen '' shift $ #. ''

variabelen Wäert

Assignéiert de Wäert op Variabel. (Am Allgemengen ass et besser, Variablen = Wert ze lueden an net mat Setvar Setvar ze benotzen ass beabrësst ginn an Funktiounen, déi Wäerter zu Variablen verëffentlechen, wou d'Nimm als Parameter ofgetrëppelt ginn.)

Verännerung [ n ]

Shift d'Positional Parameter n times. Eng Versetzung setze de Wäert vun $ 1 op den Wert vun $ 2 den Wäert vun $ 2 op de Wäert vun $ 3 an sou weider, an de Wäert vun $ # ëm ee verléiert. Wann n méi wéi d'Zuel vun Positionalparameter ass, fiert d'Verschéckung e Fehlermeldung a fuert aus dem Réck vum Status 2.

Zäiten

Den accumuléierte Benotzer an de Systemzeeche fir d'Schuel drécken an fir Prozesser aus der Shell aus. De Status vum Réck ass 0.

Fallaktiounsignal ...

Erzielt d'Shell d'Aktioun ze analyséieren an auszeféieren, wann eng vun de spezifizéierte Signaler kréien. D'Signaler ginn duerch Signalnummer spezifizéiert. Wann d' Signal 0 ass, gëtt d'Aktioun ausgezeechent wann d'Shell ofgeet. D'Aktioun kann null oder `` - '' déi virdrun verursaacht datt de spezifizéierte Signal ignoréiert gëtt an datt dee léiwer de Standardmaart misst geholl ginn. Wann d'Shell en Ënnerhalter ofgeschnidden huet, fuerdert se agebonnen (awer net ignoréiert) Signaler op d'Standardaktioun. D'Befehl vum Trap huet keng Auswierkung op d'Signaler déi ignoréiert hunn beim Entrée zu der Shell.

Typ [ Numm ... ]

Interprétéiert all Bezeechnes wéi en Kommando an driwwer d'Resolutioun vun der Kommando Sich. Mooss Resolutiounen sinn: Schlësselschlëssel, Alias, Shell gebaut , Kommandéiert, verfolgt Alias ​​an net fonnt. Fir Aliasen gëtt d'Alias ​​Expansioun gedréckt; fir Kommandoen a verfolgt Aliasen de komplette Weeër vum Kommando ausgedréckt.

ulimit [- H - ] [- a -tfdscmlpn [ value ]]

Erfaasse iwwer d'héicher oder männlech Limiten op Prozesser ze setzen oder nei Grenzen ze setzen. D'Wiel tëschent hart Grenz (déi kee Prozess kann erreechen, a wat net kann opgeriicht ginn, wann et geschwächt war) a muench Limit (dat bewirkt datt si Prozesser ze signaliséieren, mä net onbedéngt kill a wa se opgeworf ginn) mat dës Fändelen:

-H

setze oder iwwer hart Grenzen

-S

setze oder iwwer Softfroen fragen. Wa weder - H ni - S uginn hutt, gëtt d'Limit ofgeleet oder d'Limitë geleet. Wa si zwee spezifizéiert sinn, gewënnt d'lescht.

D'Limit ze féieren oder ze setzen ass gewielt gëtt duerch eng Angabe vun engem vun dëse Fändelen:

-a

weisen all déi aktuell Limiten

-t

ze gesinn oder de Limit op CPU-Zäit ze maachen (an zweeter Sekonn)

-f

ze weisen oder setzen d'Limit op déi gréisst Datei, déi erstallt ginn kann (an 512-Byte-Blöcken)

-d

d'Limit op d'Datemegmentgréisst vun engem Prozess (an kilobytes)

-s

ze weisen oder setzen d'Limit op d'Stackgréisst vun engem Prozess (an kilobytes)

-c

ze weisen oder setzen d'Limit op déi gréisste Kärdumpfgréisst, déi produzéiert ka ginn (an 512-Byte-Bloc)

-m

d'Limit fir de totale kierperlecht Erënnerung festzeleeën, déi duerch en Prozess (an kilobytes) benotzt kënne ginn

-l

ze gesinn oder op d'Limit setzen wéi vill Gedächtnis e Prozess kann mam Mocker (2) (an kilobytes )

-p

ze weisen oder setzen d'Limitatioun op déi Zuel vu Prozesser deen de Benotzer kann op ee Bléck sinn

-n

ze weisen oder de Limit op d'Nummerdateien ze setze fir e Prozess kann direkt opmaachen

Wa keng vun dësen definéiert ass, ass et d'Limit of Dateigréisst déi gezeechent ass oder ze setzen. Wann de Wäert uginn gëtt, gëtt d'Limit op dës Zuel gesat; soss ass d'aktuell Limit.

Grenzdeeler vun engem arbiträrste Prozess kënnen ugewise ginn oder mat der Sysctl (8) Utility agefouert ginn.

umask [ maschinne ]

Setzt den Wert vun umask (kuck umask (2)) op de spezielle Oktaumswäert. Wann de Argument weggeluecht gëtt, gëtt den Umaskungswert gedréckt.

Unalias [- a ] [ Numm ]

Wann den Numm ugewise gëtt, fiert d'Shell den Alias. Wann - a gëtt uginn, all Aliëren ofgespaart ginn.

onfräiwëllegen Numm ...

Déi spezifizéiert Variabelen a -Funioune sinn ongëss an onerwaart. Wann e bestëmmte Numm entsprécht a variabel a eng Funktioun, sinn déi Variabel an d'Funktioun ofgeschloss.

wait [ job ]

Waart fir de spezifizéierter Job, fir den Exitstatus vum leschte Prozess an der Aarbecht ze komplettéieren an zréckzekucken. Wann de Argument wegléisst, waarden op all Aarbechten ofgeschloss fir den Ausgabestatus vun Null zréckzekréien.

Command Line Editing

Wann Sh gëtt interaktiv duerch en Terminal benotzt, kann de aktuellen Kommando an d'Commandgeschicht (kuckt fc op Sx Builtins) iwwer Editing Editing Editing Editing Editing. Dëse Modus benotzt Befehle, déi hei ënnendrënner beschriwwe gëtt, ähnlech wéi eng Ënnergrupp vun de vun der vi-Manpage beschriwwe gëtt. De Kommando "set" -o vi erméiglecht vi-Modus ze redigéieren an plazéiert an e vi Insertzeechen. Mat Vi-Modus aktivéiert, sh kann tëschent Insert-Modus a Kommando-Modus geschalt ginn. De Redaktor gëtt et net hei voll ass beschränkt, awer an engem spéideren Dokument. Et ass ähnlech wéi vi: Tippen vum Aq ESC wäerte dech an Kommando VI Kommando maachen. Aq erreechen andeems se am Kommando-Modus d'Linn op d'Shell passen.

Wichteg: Benotzt de Mann Kommando ( % Mann ) fir ze kucken wéi e Kommando op Äre Computer benotzt.