EngelsFransSpaans

Ad


OnWorks-favicon

bash-statisch - Online in de cloud

Voer bash-static uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht bash-static die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online-emulator of MAC OS online-emulator

PROGRAMMA:

NAAM


bash - GNU Bourne-Again SHell

KORTE INHOUD


slaan [opties] [opdrachtreeks | bestand]

COPYRIGHT


Bash valt onder Copyright (C) 1989-2013 van de Free Software Foundation, Inc.

PRODUCTBESCHRIJVING


Slaan is een sh-compatibele commandotaalinterpreter die commando's uitvoert die zijn gelezen van de
standaardinvoer of uit een bestand. Slaan bevat ook handige functies van de Korn en C
schelpen (ksh en csh).

Slaan is bedoeld als een conforme implementatie van het Shell- en Utilities-gedeelte van
de IEEE POSIX-specificatie (IEEE Standard 1003.1). Slaan kan worden geconfigureerd als POSIX-
standaard conform.

OPTIES


Alle shell-opties voor één teken die zijn gedocumenteerd in de beschrijving van het reeks
ingebouwde opdracht kan als optie worden gebruikt wanneer de shell wordt aangeroepen. In aanvulling, slaan
interpreteert de volgende opties wanneer deze wordt aangeroepen:

-c Indien de -c optie aanwezig is, dan worden commando's gelezen van de eerste niet-optie
argument commando_tekenreeks. Als er argumenten zijn na de commando_tekenreeks, ze
worden toegewezen aan de positionele parameters, te beginnen met $0.
-i Indien de -i optie aanwezig is, de shell is interactieve.
-l Merk slaan doen alsof het is aangeroepen als een login-shell (zie AANROEPING hieronder).
-r Indien de -r optie aanwezig is, wordt de shell begrensd (Zie BEPERKT SHELL
hieronder).
-s Indien de -s optie aanwezig is, of als er geen argumenten overblijven na verwerking van de optie,
vervolgens worden commando's gelezen van de standaardinvoer. Met deze optie kan de
positionele parameters die moeten worden ingesteld bij het aanroepen van een interactieve shell.
-D Een lijst met alle dubbele aanhalingstekens, voorafgegaan door $ staat op de standaard gedrukt
uitgang. Dit zijn de strings die onderhevig zijn aan taalvertaling wanneer de
huidige locale is dat niet C or POSIX. Dit houdt in dat de -n keuze; geen commando's zullen
worden uitgevoerd.
[-+]O [winkeloptie]
winkeloptie is een van de shell-opties die door de winkelt ingebouwd (zie
SHELL GEBOUWD COMMANDO'S onderstaand). Als winkeloptie is aanwezig, -O stelt de waarde in van
die optie; +O schakelt het uit. Als winkeloptie wordt niet meegeleverd, de namen en
waarden van de shell-opties geaccepteerd door winkelt zijn op de standaard gedrukt
uitvoer. Als de aanroepoptie is +O, wordt de uitvoer weergegeven in een formaat
die als input kunnen worden hergebruikt.
-- A -- signaleert het einde van opties en schakelt verdere optieverwerking uit. Elk
argumenten na de -- worden behandeld als bestandsnamen en argumenten. Een betoog van -
is gelijk aan --.

Slaan interpreteert ook een aantal opties voor meerdere tekens. Deze opties moeten verschijnen op
de opdrachtregel vóór de te herkennen opties voor één teken.

--debugger
Regel dat het debuggerprofiel wordt uitgevoerd voordat de shell start. Gaat aan
uitgebreide foutopsporingsmodus (zie de beschrijving van het extdebug optie voor de winkelt
hieronder ingebouwd).
--dump-po-strings
Gelijkwaardig aan -D, maar de uitvoer bevindt zich in de GNU gettext po (draagbaar object) bestand
formaat.
--dump-tekenreeksen
Gelijkwaardig aan -D.
--help Geef een gebruiksbericht weer op standaarduitvoer en sluit succesvol af.
--init-bestand filet
--rcbestand filet
Voer commando's uit van filet in plaats van het systeembrede initialisatiebestand
/etc/bash.bashrc en het standaard persoonlijke initialisatiebestand ~ / .bashrc indien de
shell is interactief (zie AANROEPING hieronder).

--Log in
Gelijkwaardig aan -l.

--geen bewerking
Gebruik de GNU niet readline bibliotheek om opdrachtregels te lezen wanneer de shell is
interactief.

--geen profiel
Lees ook niet het systeembrede opstartbestand / etc / profile of een van de persoonlijke
initialisatie bestanden ~ / .bash_profile, ~/.bash_loginof ~ /. profiel. Standaard,
slaan leest deze bestanden wanneer het wordt aangeroepen als login-shell (zie AANROEPING hieronder).

--norc Lees en voer het systeembrede initialisatiebestand niet uit /etc/bash.bashrc en
het persoonlijke initialisatiebestand ~ / .bashrc als de shell interactief is. Dit
optie is standaard ingeschakeld als de shell wordt aangeroepen als sh.

--positief
Verander het gedrag van slaan waarbij de standaardbewerking verschilt van de POSIX
standaard om overeen te komen met de standaard (posix mode). Zien ONTDEK OOK hieronder voor een verwijzing naar
een document dat beschrijft hoe de posix-modus het gedrag van bash beïnvloedt.

--beperkt
De schaal wordt beperkt (zie BEPERKT SHELL hieronder).

--uitgebreid
Gelijkwaardig aan -v.

--versie
Toon versie-informatie voor deze instantie van slaan op de standaard output en exit
succes.

ARGUMENTEN


Als er argumenten overblijven na verwerking van de optie, en geen van beide -c noch -s optie is geweest
opgegeven, wordt aangenomen dat het eerste argument de naam is van een bestand dat shell bevat
commando's. Als slaan wordt op deze manier aangeroepen, $0 is ingesteld op de naam van het bestand en de
positionele parameters worden ingesteld op de resterende argumenten. Slaan leest en voert uit
commando's uit dit bestand en sluit vervolgens af. Slaan's exit-status is de exit-status van de laatste
commando uitgevoerd in het script. Als er geen opdrachten worden uitgevoerd, is de exitstatus 0. An
eerst wordt geprobeerd het bestand in de huidige map te openen en als er geen bestand wordt gevonden,
dan zoekt de shell de mappen in PATH voor het script.

AANROEPING


A Log in schelp is er een waarvan het eerste teken van argument nul een is -, of men begon met
de --Log in optie.

An interactieve shell is er een die is gestart zonder niet-optieargumenten en zonder de -c optie
waarvan de standaardingang en fout beide zijn aangesloten op klemmen (zoals bepaald door
isattig(3)), of men begon met de -i optie. PS1 is ingesteld en $- omvat i if slaan is
interactief, waardoor een shellscript of een opstartbestand deze status kan testen.

In de volgende paragrafen wordt beschreven hoe slaan voert zijn opstartbestanden uit. Als een van de
bestanden bestaan ​​maar kunnen niet worden gelezen, slaan meldt een fout. Tildes worden uitgebreid in bestandsnamen
zoals hieronder beschreven tilde Uitbreiding in de UITBREIDING pagina.

. slaan wordt aangeroepen als een interactieve login-shell, of als een niet-interactieve shell met de
--Log in optie leest en voert het eerst opdrachten uit het bestand uit / etc / profileAls dat
Bestand bestaat. Na het lezen van dat bestand, zoekt het naar ~ / .bash_profile, ~/.bash_login en
~ /. profiel, in die volgorde, en leest en voert opdrachten uit van de eerste die bestaat
en is leesbaar. De --geen profiel optie kan worden gebruikt wanneer de shell wordt gestart om te remmen
dit gedrag.

Wanneer een login-shell wordt afgesloten, slaan leest en voert opdrachten uit het bestand uit ~/.bash_uitloggen,
als het bestaat.

Wanneer een interactieve shell wordt gestart die geen login-shell is, slaan leest en voert uit
commando's van /etc/bash.bashrc en ~ / .bashrc, als deze bestanden bestaan. Dit kan worden geremd
door gebruik te maken van de --norc optie. De --rcbestand filet optie zal forceren slaan lezen en uitvoeren
commando's van filet in plaats van /etc/bash.bashrc en ~ / .bashrc.

. slaan niet-interactief wordt gestart, om bijvoorbeeld een shellscript uit te voeren, zoekt het naar
de variabele BASH_ENV in de omgeving, breidt zijn waarde uit als het daar verschijnt en gebruikt
de uitgebreide waarde als de naam van een bestand dat moet worden gelezen en uitgevoerd. Slaan gedraagt ​​zich alsof de
volgende commando werden uitgevoerd:
als [ -n "$BASH_ENV"]; Dan . "$BASH_ENV"; fi
maar de waarde van de PATH variabele wordt niet gebruikt om naar de bestandsnaam te zoeken.

If slaan wordt aangeroepen met de naam sh, probeert het het opstartgedrag van historic
versies van sh zo nauwkeurig mogelijk, terwijl het ook voldoet aan de POSIX-standaard.
Wanneer aangeroepen als een interactieve login-shell, of een niet-interactieve shell met de --Log in
optie, probeert het eerst commando's te lezen en uit te voeren van / etc / profile en ~ /. profiel,
in die volgorde. De --geen profiel optie kan worden gebruikt om dit gedrag te remmen. Wanneer aangeroepen
als een interactieve shell met de naam sh, slaan zoekt naar de variabele ENV, breidt zijn
waarde als deze is gedefinieerd, en gebruikt de uitgebreide waarde als de naam van een bestand om te lezen en
uitvoeren. Omdat een shell wordt aangeroepen als sh probeert geen opdrachten van te lezen en uit te voeren
alle andere opstartbestanden, de --rcbestand optie heeft geen effect. Een niet-interactieve shell
aangeroepen met de naam sh probeert geen andere opstartbestanden te lezen. Wanneer aangeroepen
as sh, slaan komt posix modus nadat de opstartbestanden zijn gelezen.

. slaan is begonnen in posix modus, zoals bij de --positief opdrachtregeloptie, volgt het
de POSIX-standaard voor opstartbestanden. In deze modus breiden interactieve shells het ENV
variabele en opdrachten worden gelezen en uitgevoerd vanuit het bestand waarvan de naam het uitgevouwen bestand is
waarde. Er worden geen andere opstartbestanden gelezen.

Slaan probeert vast te stellen wanneer het wordt uitgevoerd terwijl de standaardingang is aangesloten op een
netwerkverbinding, zoals gewoonlijk uitgevoerd door de externe shell-daemon rshdOf de
veilige shell-daemon sshd. Indien slaan bepaalt dat het op deze manier wordt gerund, staat er
en voert opdrachten uit van ~ / .bashrc en ~ / .bashrc, als deze bestanden bestaan ​​en leesbaar zijn.
Het zal dit niet doen als het wordt aangeroepen als sh. De --norc optie kan worden gebruikt om dit te voorkomen
gedrag, en de --rcbestand optie kan worden gebruikt om te forceren dat een ander bestand wordt gelezen, maar
noch rshd noch sshd roep over het algemeen de shell aan met die opties of sta ze toe
gespecificeerd.

Als de shell wordt gestart met de effectieve gebruiker (groep) id die niet gelijk is aan de echte gebruiker
(groeps)id, en de -p optie wordt niet meegeleverd, er worden geen opstartbestanden gelezen, shell-functies
worden niet geërfd van de omgeving, de SCHELLOPTS, BASHOPTEN, CDPATH en GLOBIGNORE
variabelen, als ze in de omgeving verschijnen, worden genegeerd en de effectieve gebruikers-ID is
ingesteld op het echte gebruikers-ID. Als de -p optie wordt geleverd bij aanroepen, het opstartgedrag
is hetzelfde, maar het effectieve gebruikers-ID wordt niet gereset.

DEFINITIES


De volgende definities worden in de rest van dit document gebruikt.
blanco Een spatie of tab.
woord Een opeenvolging van tekens die door de shell als een enkele eenheid worden beschouwd. Ook bekend als een
teken.
naam A woord alleen bestaande uit alfanumerieke tekens en onderstrepingstekens, en begin
met een alfabetisch teken of een onderstrepingsteken. Ook wel een genoemd identificatie.
metateken
Een teken dat, wanneer het niet wordt geciteerd, woorden scheidt. Een van de volgende:
| & ; ( ) < > ruimte tab
onder controle te houden operator
A teken die een controlerende functie vervult. Het is een van de volgende symbolen:
|| & && ; ;; ( ) | |&

GERESERVEERD WOORDEN


Gereserveerd woorden zijn woorden die een speciale betekenis hebben voor de schelp. De volgende woorden
worden herkend als gereserveerd wanneer ze niet worden geciteerd en het eerste woord van een eenvoudig commando zijn
(Zie SHELL GRAMMATICA hieronder) of het derde woord van a geval or For opdracht:

! geval koproc do gedaan elif anders hexac fi For functie if in kiezen harte tot en { }
niet de tijd of [[ ]]

SHELL GRAMMATICA


Eenvoudig commando's
A simpel commando is een reeks optionele variabeletoewijzingen gevolgd door blanco-
gescheiden woorden en omleidingen, en beëindigd door een onder controle te houden operator. Het eerste woord
specificeert de uit te voeren opdracht en wordt doorgegeven als argument nul. De overige woorden
worden doorgegeven als argumenten aan het aangeroepen commando.

De retourwaarde van een simpel commando is de exit-status, of 128+n als de opdracht is
beëindigd door signaal n.

Pijpleidingen
A pijpleiding is een reeks van een of meer commando's gescheiden door een van de besturingsoperatoren
| or |&. Het formaat voor een pijplijn is:

[niet de tijd of [-p]] [! ] commando [[||&] command2 ...]

De standaard output van commando is via een leiding aangesloten op de standaard ingang van command2.
Deze verbinding wordt tot stand gebracht vóór eventuele omleidingen gespecificeerd door de opdracht (zie
OMLEIDING onderstaand). Als |& is gebruikt, commando's standaardfout, naast zijn standaard
uitgang, is aangesloten command2's standaard invoer via de pijp; het is een afkorting voor
2> & 1 |. Deze impliciete omleiding van de standaardfout naar de standaarduitvoer is
uitgevoerd na omleidingen gespecificeerd door de opdracht.

De retourstatus van een pijplijn is de exitstatus van de laatste opdracht, tenzij de
pijpfout optie is ingeschakeld. Als pijpfout is ingeschakeld, is de retourstatus van de pijplijn de
waarde van de laatste (meest rechtse) opdracht om af te sluiten met een niet-nulstatus, of nul als alles
commando's worden succesvol afgesloten. Als het gereserveerde woord ! voorafgaat aan een pijplijn, de exit-status
van die pijplijn is de logische ontkenning van de exitstatus zoals hierboven beschreven. De schelp
wacht tot alle opdrachten in de pijplijn zijn beëindigd voordat een waarde wordt geretourneerd.

Indien de niet de tijd of gereserveerd woord gaat vooraf aan een pijplijn, zowel de verstreken als de gebruikers- en systeemtijd
verbruikt door de uitvoering worden gerapporteerd wanneer de pijplijn eindigt. De -p optie
verandert het uitvoerformaat naar dat gespecificeerd door POSIX. Als de schil erin zit posix modeHet
niet herkent niet de tijd of als een gereserveerd woord als het volgende token begint met een `-'. De
TIJD FORMAAT variabele kan worden ingesteld op een indelingsreeks die specificeert hoe de timing
informatie moet worden weergegeven; zie de beschrijving van TIJD FORMAAT voor Shell Variabelen
hieronder.

Als de schil erin zit posix mode, niet de tijd of kan worden gevolgd door een nieuwe regel. In dit geval de
shell geeft de totale gebruikers- en systeemtijd weer die door de shell en zijn kinderen is verbruikt. De
TIJD FORMAAT variabele kan worden gebruikt om het formaat van de tijdinformatie te specificeren.

Elke opdracht in een pijplijn wordt uitgevoerd als een afzonderlijk proces (dwz in een subshell).

lijsten
A lijst is een opeenvolging van een of meer pijpleidingen gescheiden door een van de operators ;, &, &&,
or ||, en eventueel beëindigd door een van ;, &of .

Van deze lijstoperatoren, && en || hebben gelijke voorrang, gevolgd door ; en &, die hebben
gelijke voorrang.

Een reeks van een of meer nieuwe regels kan verschijnen in een lijst in plaats van een puntkomma om af te bakenen
commando's.

Als een commando wordt beëindigd door de besturingsoperator &, voert de shell het commando uit in
de achtergrond in een subschaal. De shell wacht niet tot het commando is voltooid, en het
retourstatus is 0. Commando's gescheiden door een ; worden achtereenvolgens uitgevoerd; de schaal wacht
voor elk commando om beurtelings te eindigen. De retourstatus is de exitstatus van de laatste
opdracht uitgevoerd.

EN- en OF-lijsten zijn reeksen van een of meer pijplijnen, gescheiden door de && en || onder controle te houden
exploitanten, respectievelijk. AND- en OR-lijsten worden uitgevoerd met linker associativiteit. Een EN
lijst heeft de vorm

command1 && command2

command2 wordt uitgevoerd als, en alleen als, command1 retourneert een afsluitstatus van nul.

Een OR-lijst heeft de vorm

command1 || command2

command2 wordt uitgevoerd als en slechts als command1 retourneert een afsluitstatus die niet gelijk is aan nul. De terugkeer
status van EN- en OF-lijsten is de afsluitstatus van de laatste opdracht die in de lijst is uitgevoerd.

Samenstelling commando's
A samenstelling commando is een van de volgende. In de meeste gevallen a lijst in een commando
description kan van de rest van het commando worden gescheiden door een of meer nieuwe regels, en may
worden gevolgd door een nieuwe regel in plaats van een puntkomma.

(lijst) lijst wordt uitgevoerd in een subshell-omgeving (zie COMMAND EXECUTIE MILIEU
onderstaand). Variabele toewijzingen en ingebouwde commando's die van invloed zijn op de shell's
omgeving blijven niet van kracht nadat de opdracht is voltooid. De retourstatus
is de exitstatus van lijst.

{ lijst; }
lijst wordt gewoon uitgevoerd in de huidige shell-omgeving. lijst moet worden beëindigd
met een nieuwe regel of puntkomma. Dit staat bekend als een groep commando. De retourstatus
is de exitstatus van lijst. Merk op dat in tegenstelling tot de metatekens ( en ), { en }
zijn gereserveerd woorden en moet voorkomen waar een gereserveerd woord mag zijn
erkend. Aangezien ze geen woordonderbreking veroorzaken, moeten ze worden gescheiden van lijst
door witruimte of een ander shell-metateken.

((uitdrukking))
De uitdrukking wordt beoordeeld volgens de hieronder beschreven regels REKENKUNDIG
EVALUATIE. Als de waarde van de expressie niet nul is, is de retourstatus 0;
anders is de retourstatus 1. Dit is exact gelijk aan laten "uitdrukking".

[[ uitdrukking ]]
Retourneert een status van 0 of 1, afhankelijk van de evaluatie van de voorwaardelijke expressie
uitdrukking. Uitdrukkingen zijn samengesteld uit de voorverkiezingen die hieronder worden beschreven
VOORWAARDELIJK UITDRUKKINGEN. Woordsplitsing en padnaamuitbreiding worden niet uitgevoerd
op de woorden tussen de [[ en ]]; tilde uitbreiding, parameter en variabele
uitbreiding, rekenkundige uitbreiding, opdrachtvervanging, procesvervanging en
offerte verwijdering worden uitgevoerd. Voorwaardelijke operatoren zoals -f moet niet worden geciteerd
erkend worden als voorverkiezingen.

Bij gebruik bij [[ < en > operatoren sorteren lexicografisch met behulp van de stroom
Local.

Zie de beschrijving van de proef ingebouwde opdracht (sectie SHELL BUILTIN COMMANDO'S hieronder) voor
het omgaan met parameters (dwz ontbrekende parameters).

Wanneer de == en != operatoren worden gebruikt, is de string rechts van de operator
beschouwd als een patroon en gematcht volgens de hieronder beschreven regels Patronen
Bijpassende, alsof de extglob shell-optie zijn ingeschakeld. De = exploitant is gelijk aan
==. Als de shell-optie geencasematch is ingeschakeld, wordt de match uitgevoerd zonder rekening te houden met
het geval van alfabetische tekens. De geretourneerde waarde is 0 als de tekenreeks overeenkomt met (==) Of
komt niet overeen (!=) het patroon, en 1 anders. Elk deel van het patroon kan worden geciteerd
om te forceren dat het geciteerde gedeelte wordt vergeleken als een tekenreeks.

Een extra binaire operator, =~, is beschikbaar, met dezelfde prioriteit als == en !=.
Wanneer deze wordt gebruikt, wordt de tekenreeks rechts van de operator beschouwd als een verlengde regular
expressie en dienovereenkomstig gematcht (zoals in regex(3)). De geretourneerde waarde is 0 als de string
komt overeen met het patroon, en 1 anders. Als de reguliere expressie syntactisch is
onjuist is, is de geretourneerde waarde van de voorwaardelijke uitdrukking 2. Als de shell-optie
geencasematch is ingeschakeld, wordt de overeenkomst uitgevoerd ongeacht het hoofdlettergebruik
karakters. Elk deel van het patroon mag worden geciteerd om het geciteerde gedeelte te forceren
overeenkomen als een tekenreeks. Uitdrukkingen tussen haken in reguliere uitdrukkingen moeten worden behandeld
voorzichtig, aangezien normale aanhalingstekens hun betekenis tussen haakjes verliezen. Als de
patroon wordt opgeslagen in een shell-variabele, onder vermelding van de variabele expansie dwingt het geheel
patroon dat moet worden vergeleken als een tekenreeks. Subtekenreeksen die overeenkomen met subexpressies tussen haakjes
binnen de reguliere expressie worden opgeslagen in de matrixvariabele BASH_REMATCH. Het element
of BASH_REMATCH met index 0 is het gedeelte van de string dat overeenkomt met de gehele regular
uitdrukking. Het onderdeel van BASH_REMATCH met index n is het deel van de string
overeenkomen met de ne tussen haakjes geplaatste subexpressie.

Uitdrukkingen kunnen worden gecombineerd met behulp van de volgende operatoren, weergegeven in afnemende volgorde van
voorrang:

( uitdrukking )
Retourneert de waarde van uitdrukking. Dit kan worden gebruikt om het normale te overschrijven
voorrang van exploitanten.
! uitdrukking
waar als uitdrukking is fout.
uitdrukking1 && uitdrukking2
Waar als beide uitdrukking1 en uitdrukking2 zijn waar.
uitdrukking1 || uitdrukking2
Waar als een van beide uitdrukking1 or uitdrukking2 is waar.

De && en || exploitanten evalueren niet uitdrukking2 als de waarde van uitdrukking1 is
voldoende om de geretourneerde waarde van de volledige voorwaardelijke expressie te bepalen.

For naam [[ in [ woord ... ]] ; ] do lijst ; gedaan
De woordenlijst volgt in wordt uitgevouwen, waardoor een lijst met items wordt gegenereerd. De
variabele naam wordt achtereenvolgens ingesteld op elk element van deze lijst, en lijst is geëxecuteerd
elke keer. Als de in woord wordt weggelaten, de For opdracht wordt uitgevoerd lijst eenmaal voor elk
positionele parameter die is ingesteld (zie PARAMETERS onderstaand). De retourstatus is de
exit-status van de laatste opdracht die wordt uitgevoerd. Als de uitbreiding van de items
volgend in resulteert in een lege lijst, er worden geen opdrachten uitgevoerd en de return
stand is 0.

For (( uitdr1 ; uitdr2 ; uitdr3 )) ; do lijst ; gedaan
Eerst de rekenkundige uitdrukking uitdr1 wordt beoordeeld volgens de regels
hieronder beschreven REKENKUNDIG EVALUATIE. De rekenkundige uitdrukking uitdr2 is
vervolgens herhaaldelijk geëvalueerd totdat het resulteert in nul. Elke keer uitdr2 evalueert naar
een niet-nul waarde, lijst wordt uitgevoerd en de rekenkundige uitdrukking uitdr3 is
geëvalueerd. Als een expressie wordt weggelaten, gedraagt ​​deze zich alsof deze resulteert in 1. De
retourwaarde is de exit-status van de laatste opdracht in lijst dat wordt uitgevoerd, of
false als een van de uitdrukkingen ongeldig is.

kiezen naam [ in woord ]; do lijst ; gedaan
De woordenlijst volgt in wordt uitgevouwen, waardoor een lijst met items wordt gegenereerd. Het stel van
uitgebreide woorden wordt afgedrukt op de standaardfout, elk voorafgegaan door een nummer. Als de
in woord wordt weggelaten, worden de positionele parameters afgedrukt (zie PARAMETERS hieronder).
De PS3 prompt wordt dan weergegeven en er wordt een regel uit de standaardinvoer gelezen. Als de
regel bestaat uit een nummer dat overeenkomt met een van de weergegeven woorden, vervolgens de
waarde van naam is ingesteld op dat woord. Als de regel leeg is, zijn de woorden en prompt leeg
opnieuw weergegeven. Als EOF wordt gelezen, is de opdracht voltooid. Elke andere waarde gelezen
oorzaken naam op nul worden gezet. De gelezen regel wordt opgeslagen in de variabele ANTWOORD. De
lijst wordt uitgevoerd na elke selectie totdat a breken commando wordt uitgevoerd. De uitgang
status van kiezen is de afsluitstatus van de laatste opdracht die is uitgevoerd in lijst, of nul
als er geen opdrachten zijn uitgevoerd.

geval woord in [ [(] patroon [ | patroon ] ...) lijst ;; ] ... hexac
A geval opdracht breidt zich eerst uit woord, en probeert het tegen elkaar te matchen patroon in
beurt, waarbij dezelfde overeenkomstenregels worden gebruikt als voor padnaamuitbreiding (zie Padnaam
Uitbreiding onderstaand). De woord wordt uitgebreid met behulp van tilde-expansie, parameter en
variabele uitbreiding, rekenkundige vervanging, opdrachtvervanging, proces
vervanging en citaatverwijdering. Elk patroon onderzocht wordt uitgebreid met tilde
uitbreiding, parameter- en variabele-uitbreiding, rekenkundige vervanging, opdracht
substitutie en processubstitutie. Als de shell-optie geencasematch is
ingeschakeld, wordt de overeenkomst uitgevoerd zonder rekening te houden met alfabetisch
karakters. Als er een match is gevonden, wordt de corresponderende lijst is geëxecuteerd. Als de ;;
operator wordt gebruikt, worden er geen volgende overeenkomsten geprobeerd na het eerste patroon
overeenkomst. Gebruik makend van ;& in plaats van ;; zorgt ervoor dat de uitvoering doorgaat met de lijst
geassocieerd met de volgende reeks patronen. Gebruik makend van ;;& in plaats van ;; veroorzaakt de
shell om de volgende patroonlijst in de instructie, indien aanwezig, te testen en uit te voeren
geassocieerd lijst op een geslaagde wedstrijd. De exitstatus is nul als er geen patroon is
wedstrijden. Anders is dit de afsluitstatus van de laatste opdracht die is uitgevoerd in lijst.

if lijst; harte lijst​ ​ elif lijst; harte lijst; ] ... [ anders lijst; ] fi
De if lijst is geëxecuteerd. Als de afsluitstatus nul is, wordt de harte lijst is geëxecuteerd.
Anders elk elif lijst beurtelings uitgevoerd en als de exitstatus nul is, wordt de
overeenkomstig harte lijst wordt uitgevoerd en de opdracht is voltooid. Anders de anders
lijst wordt uitgevoerd, indien aanwezig. De exitstatus is de exitstatus van de laatste
opdracht uitgevoerd, of nul als geen van de geteste voorwaarden waar is.

en lijst-1; do lijst-2; gedaan
tot lijst-1; do lijst-2; gedaan
De en commando voert continu de lijst uit lijst-2 net zo lang als de laatste opdracht
in de lijst lijst-1 retourneert een afsluitstatus van nul. De tot commando is identiek
aan de en commando, behalve dat de test wordt ontkend; lijst-2 wordt even lang uitgevoerd
als het laatste commando in lijst-1 retourneert een afsluitstatus die niet gelijk is aan nul. De exitstatus van
de en en tot commando's is de afsluitstatus van het laatste commando dat is uitgevoerd in
lijst-2, of nul als er geen werd uitgevoerd.

Coprocessen
A meeverwerken is een shell-opdracht voorafgegaan door de koproc gereserveerd woord. Een coproces is
asynchroon uitgevoerd in een subshell, alsof de opdracht is beëindigd met de &
besturingsoperator, met een tweerichtingsleiding tot stand gebracht tussen de uitvoerende shell en de
meeverwerken.

Het formaat voor een coproces is:

koproc [NAAM] commando [redirects]

Dit creëert een coproces met de naam NAAM. Indien NAAM wordt niet meegeleverd, de standaardnaam is COPROC.
NAAM mag niet worden geleverd als commando is een simpel commando (zie hierboven); anders is het dat wel
geïnterpreteerd als het eerste woord van het eenvoudige commando. Wanneer het coproces wordt uitgevoerd, wordt het
shell maakt een array-variabele aan (zie arrays hieronder) genoemd NAAM in het kader van de
shell uitvoeren. De standaarduitvoer van commando is via een pijp verbonden met een bestand
descriptor in de uitvoerende shell en die bestandsdescriptor is toegewezen NAAM[0]. De
standaard invoer van commando is via een pijp verbonden met een bestandsdescriptor in de executing
shell, en waaraan de bestandsdescriptor is toegewezen NAAM[1]. Deze pijp is eerder aangelegd
eventuele omleidingen gespecificeerd door de opdracht (zie OMLEIDING onderstaand). De bestandsbeschrijvingen
kan worden gebruikt als argumenten voor shell-commando's en omleidingen met standaardwoord
uitbreidingen. De bestandsdescriptors zijn niet beschikbaar in subshells. De proces-ID van het
shell die is voortgebracht om de coprocess uit te voeren, is beschikbaar als de waarde van de variabele NAAM_PID.
De wachten ingebouwde opdracht kan worden gebruikt om te wachten tot de coprocess is beëindigd.

Omdat de coprocess is gemaakt als een asynchrone opdracht, is de koproc commando altijd
geeft succes terug. De retourstatus van een coproces is de exitstatus van commando.

Shell Functie Definities
Een shell-functie is een object dat wordt aangeroepen als een eenvoudig commando en een verbinding uitvoert
commando met een nieuwe set positionele parameters. Shell-functies worden als volgt gedeclareerd:

naam () samengestelde opdracht [omleiding]
functie naam [()] samengestelde opdracht [omleiding]
Dit definieert een functie met de naam naam. Het gereserveerde woord functie is optioneel. Als
de functie gereserveerd woord is opgegeven, de haakjes zijn optioneel. De lichaam of
de functie is het samengestelde commando samengestelde opdracht (Zie Samenstelling commando's
boven). Dat commando is meestal een lijst van commando's tussen { en }, maar kan elk zijn
commando vermeld onder Samenstelling commando's bovenstaand. samengestelde opdracht is geëxecuteerd
telkens als naam wordt opgegeven als de naam van een eenvoudig commando. Wanneer binnen posix mode,
naam is mogelijk niet de naam van een van de POSIX special ingebouwde. Eventuele omleidingen
(Zie OMLEIDING hieronder) opgegeven wanneer een functie is gedefinieerd, worden uitgevoerd wanneer de
functie wordt uitgevoerd. De afsluitstatus van een functiedefinitie is nul, tenzij a
Er treedt een syntaxisfout op of er bestaat al een alleen-lezen functie met dezelfde naam. Wanneer
uitgevoerd, is de afsluitstatus van een functie de afsluitstatus van het laatste commando
uitgevoerd in het lichaam. (Zien FUNCTIES hieronder.)

OPMERKINGEN


In een niet-interactieve shell, of een interactieve shell waarin de interactieve_opmerkingen
optie voor de winkelt ingebouwd is ingeschakeld (zie SHELL GEBOUWD COMMANDO'S hieronder), een woord
beginnend met # zorgt ervoor dat dat woord en alle overige tekens op die regel worden genegeerd.
Een interactieve shell zonder de interactieve_opmerkingen optie ingeschakeld staat niet toe
opmerkingen. De interactieve_opmerkingen optie is standaard ingeschakeld in interactieve shells.

CITAAT


citeren wordt gebruikt om de speciale betekenis van bepaalde tekens of woorden in de shell te verwijderen.
Aanhalingstekens kunnen worden gebruikt om speciale behandeling voor speciale tekens uit te schakelen, te voorkomen
gereserveerde woorden niet als zodanig worden herkend en om uitbreiding van parameters te voorkomen.

Elk van de metatekens hierboven vermeld onder DEFINITIES heeft een speciale betekenis voor de schelp
en moet worden geciteerd als het zichzelf wil vertegenwoordigen.

Wanneer de uitbreidingsmogelijkheden van de commandogeschiedenis worden gebruikt (zie GESCHIEDENIS UITBREIDING
onder de geschiedenis uitbreiding karakter, meestal !, moet worden geciteerd om geschiedenis te voorkomen
uitbreiding.

Er zijn drie citeermechanismen: de ontsnappen karakter, enkele aanhalingstekens en dubbele
citaten.

Een backslash zonder aanhalingstekens (\) Is het ontsnappen karakter. Het behoudt de letterlijke waarde van de
volgende teken dat volgt, met uitzondering van . Als een \paar
verschijnt en de backslash zelf niet tussen aanhalingstekens staat, de \wordt behandeld als een lijn
voortzetting (dat wil zeggen, het wordt verwijderd uit de invoerstroom en effectief genegeerd).

Door tekens tussen enkele aanhalingstekens te plaatsen, blijft de letterlijke waarde van elk teken erin behouden
de citaten. Een enkel aanhalingsteken mag niet voorkomen tussen enkele aanhalingstekens, zelfs niet als deze worden voorafgegaan door een
terugslag.

Door tekens tussen dubbele aanhalingstekens te plaatsen, blijft de letterlijke waarde van alle tekens erin behouden
de citaten, met uitzondering van $, `, \, en, wanneer geschiedenisuitbreiding is ingeschakeld, !. De
tekens $ en ` behouden hun speciale betekenis binnen dubbele aanhalingstekens. De backslash
behoudt zijn speciale betekenis alleen wanneer gevolgd door een van de volgende tekens: $, `,
", \of . Een dubbel aanhalingsteken kan tussen dubbele aanhalingstekens worden geplaatst door ervoor te gaan
met een backslash. Indien ingeschakeld, wordt geschiedenisuitbreiding uitgevoerd, tenzij een ! verschijnen
tussen dubbele aanhalingstekens wordt geëscaped met een backslash. De backslash voorafgaand aan de ! is niet
verwijderd.

De speciale parameters * en @ hebben een speciale betekenis wanneer ze tussen dubbele aanhalingstekens staan ​​(zie PARAMETERS
hieronder).

Woorden van het formulier $'snaar' worden speciaal behandeld. Het woord breidt uit naar snaarmet
backslash-escape-tekens vervangen zoals gespecificeerd door de ANSI C-standaard. Backslash
ontsnappingsreeksen, indien aanwezig, worden als volgt gedecodeerd:
\a alarm (bel)
\b backspace
\e
\E een ontsnappingskarakter
\f vorm feed
\n nieuwe lijn
\r vervoer retour
\t horizontale tab
\v verticaal tabblad
\\ backslash
\' alleenstaande citaat
\" dubbele aanhalingstekens
\nnn het acht-bits teken waarvan de waarde de octale waarde is nnn (één tot drie
cijfers)
\xHH het acht-bits teken waarvan de waarde de hexadecimale waarde is HH (een of twee
hexadecimale cijfers)
\uHhhh het Unicode-teken (ISO/IEC 10646) waarvan de waarde de hexadecimale waarde is
Hhhh (één tot vier hexadecimale cijfers)
\UHHHHHHH
het Unicode-teken (ISO/IEC 10646) waarvan de waarde de hexadecimale waarde is
HHHHHHH (één tot acht hexadecimale cijfers)
\cx een controle-x karakter

Het uitgebreide resultaat staat tussen enkele aanhalingstekens, alsof het dollarteken niet aanwezig was.

Een tekenreeks met dubbele aanhalingstekens voorafgegaan door een dollarteken ($"snaar") zorgt ervoor dat de string wordt
vertaald volgens de huidige locale. Als de huidige landinstelling is C or POSIX
dollarteken wordt genegeerd. Als de string wordt vertaald en vervangen, is de vervanging
dubbel geciteerd.

PARAMETERS


A parameter is een entiteit die waarden opslaat. Het kan een naam, een nummer of een van de
speciale tekens hieronder vermeld special parameters. Een variabele is een parameter
aangeduid met a naam. Een variabele heeft een waarde en nul of meer attributen. Attributen zijn
toegewezen met behulp van de verklaren ingebouwde opdracht (zie verklaren hieronder in SHELL GEBOUWD COMMANDO'S).

Een parameter is ingesteld als er een waarde aan is toegewezen. De null-tekenreeks is een geldige waarde.
Als een variabele eenmaal is ingesteld, kan deze alleen worden uitgeschakeld met behulp van de uitgeschakeld ingebouwde opdracht (zie SHELL
GEBOUWD COMMANDO'S hieronder).

A variabele kan worden toegewezen door een verklaring van het formulier

naam=[waarde]

If waarde niet wordt gegeven, krijgt de variabele de null-tekenreeks toegewezen. Alle waarden tilde ondergaan
uitbreiding, parameter- en variabele-uitbreiding, opdrachtvervanging, rekenkundige uitbreiding,
en offerte verwijderen (zie UITBREIDING onderstaand). Als de variabele zijn geheel getal attribuut ingesteld,
harte waarde wordt geëvalueerd als een rekenkundige uitdrukking, zelfs als de uitbreiding $((...)) dat niet is
gebruikt (zie Rekenkunde Uitbreiding onderstaand). Woordsplitsing wordt niet uitgevoerd, met de
uitgezonderd "$@" zoals hieronder uitgelegd special parameters. Padnaamuitbreiding is dat niet
uitgevoerd. Toewijzingsverklaringen kunnen ook verschijnen als argumenten voor de alias, verklaren,
gezet, exporteren, alleen lezen en lokaal ingebouwde commando's. Wanneer binnen posix mode, deze ingebouwde
kan in een opdracht verschijnen na een of meer exemplaren van de commando ingebouwd en behouden
deze eigenschappen van de toewijzingsverklaring.

In de context waarin een toewijzingsinstructie een waarde toekent aan een shell-variabele of
array-index, kan de operator += worden gebruikt om toe te voegen aan of toe te voegen aan de vorige van de variabele
waarde. Wanneer += wordt toegepast op een variabele waarvoor de geheel getal attribuut is ingesteld,
waarde wordt geëvalueerd als een rekenkundige uitdrukking en toegevoegd aan de huidige waarde van de variabele,
dat wordt ook beoordeeld. Wanneer += wordt toegepast op een matrixvariabele met behulp van samengesteld
opdracht (zie arrays hieronder), wordt de waarde van de variabele niet uitgeschakeld (zoals bij gebruik van =),
en nieuwe waarden worden aan de array toegevoegd, beginnend bij één groter dan het maximum van de array
index (voor geïndexeerde arrays) of toegevoegd als aanvullende sleutel-waardeparen in een associatieve array.
Wanneer toegepast op een variabele met een tekenreekswaarde, waarde wordt uitgebreid en toegevoegd aan de variabelen
waarde.

Een variabele kan worden toegewezen aan de naamref attribuut met behulp van de -n optie voor de verklaren or
lokaal ingebouwde commando's (zie de beschrijvingen van verklaren en lokaal hieronder) om een
naamref, of een verwijzing naar een andere variabele. Hierdoor kunnen variabelen worden gemanipuleerd
indirect. Telkens wanneer naar de nameref-variabele wordt verwezen of eraan wordt toegewezen, is de bewerking
daadwerkelijk uitgevoerd op de variabele die wordt gespecificeerd door de waarde van de nameref-variabele. Een naamref
wordt vaak gebruikt binnen shell-functies om te verwijzen naar een variabele waarvan de naam wordt doorgegeven als een
argument voor de functie. Als bijvoorbeeld een variabelenaam wordt doorgegeven aan een shell-functie
als eerste argument, hardlopen
verklaar -n ref=$1
binnen de functie maakt een nameref-variabele aan ref waarvan de waarde de doorgegeven variabelenaam is
als eerste argument. Referenties en opdrachten aan ref worden behandeld als referenties en
toewijzingen aan de variabele waarvan de naam is doorgegeven als $1. Als de controlevariabele in a For
loop heeft het nameref-attribuut, de lijst met woorden kan een lijst met shell-variabelen zijn, en a
naamreferentie wordt achtereenvolgens voor elk woord in de lijst vastgesteld wanneer de lus is
uitgevoerd. Array-variabelen kunnen niet worden gegeven -n attribuut. Nameref-variabelen
kan verwijzen naar arrayvariabelen en subscriptarrayvariabelen. Naamverwijzingen kunnen worden uitgeschakeld
met de -n optie voor de uitgeschakeld ingebouwd. Anders, als uitgeschakeld wordt uitgevoerd met de naam
van een nameref-variabele als argument, zal de variabele waarnaar wordt verwezen door de nameref-variabele
uitgeschakeld zijn.

Positioneel parameters
A positie- parameter is een parameter die wordt aangeduid met een of meer cijfers, behalve de single
cijfer 0. Positionele parameters worden toegewezen vanuit de shell-argumenten als dat zo is
aangeroepen, en kan opnieuw worden toegewezen met behulp van de reeks ingebouwde opdracht. Positionele parameters kunnen
niet worden toegewezen aan toewijzingsverklaringen. De positionele parameters zijn tijdelijk
vervangen wanneer een shell-functie wordt uitgevoerd (zie FUNCTIES hieronder).

Wanneer een positionele parameter die uit meer dan één cijfer bestaat, wordt uitgebreid, moet dat zo zijn
tussen haakjes geplaatst (zie UITBREIDING hieronder).

special parameters
De shell behandelt verschillende parameters speciaal. Er mag alleen naar deze parameters worden verwezen;
opdracht aan hen is niet toegestaan.
* Breidt uit naar de positionele parameters, beginnend bij één. Wanneer de uitbreiding niet is
tussen dubbele aanhalingstekens wordt elke positionele parameter uitgebreid naar een afzonderlijk woord. In
contexten waarin het wordt uitgevoerd, zijn die woorden onderhevig aan verdere woordsplitsing
en uitbreiding van de padnaam. Wanneer de uitbreiding plaatsvindt tussen dubbele aanhalingstekens, wordt deze uitgebreid
tot een enkel woord met de waarde van elke parameter gescheiden door het eerste teken
van de IFS speciale variabele. Dat is, "$*" is gelijk aan "$1c$2c...", waar c
is het eerste teken van de waarde van de IFS variabel. Als IFS is uitgeschakeld, de
parameters worden gescheiden door spaties. Als IFS nul is, worden de parameters samengevoegd
zonder tussenkomst van scheidingstekens.
@ Breidt uit naar de positionele parameters, beginnend bij één. Wanneer de expansie plaatsvindt
tussen dubbele aanhalingstekens wordt elke parameter uitgebreid naar een afzonderlijk woord. Dat is, "$@'is
gelijkwaardig aan "$1""$2" ... Als de uitbreiding tussen dubbele aanhalingstekens voorkomt binnen een woord,
de uitbreiding van de eerste parameter wordt samengevoegd met het begingedeelte van de
origineel woord, en de uitbreiding van de laatste parameter wordt samengevoegd met het laatste deel
van het oorspronkelijke woord. Wanneer er geen positionele parameters zijn, "$@"en $@ uitbreiden
tot niets (dwz ze worden verwijderd).
# Breidt uit naar het aantal positionele parameters in decimalen.
? Breidt uit naar de afsluitstatus van de meest recent uitgevoerde pijplijn op de voorgrond.
- Breidt uit naar de huidige optievlaggen zoals gespecificeerd bij aanroep, door de reeks
ingebouwde opdracht, of die ingesteld door de shell zelf (zoals de -i keuze).
$ Breidt uit naar de proces-ID van de shell. In een () subshell breidt het zich uit naar de
proces-ID van de huidige shell, niet de subshell.
! Breidt uit naar de proces-ID van de taak die het laatst op de achtergrond is geplaatst,
of het nu wordt uitgevoerd als een asynchrone opdracht of met behulp van de bg ingebouwd (zie JOB
CONTROL hieronder).
0 Breidt uit naar de naam van de shell of het shellscript. Dit is ingesteld op shell
initialisatie. Als slaan wordt aangeroepen met een bestand met opdrachten, $0 is ingesteld op de naam
van dat bestand. Als slaan wordt gestart met de -c optie, dan $0 staat op de eerste
argument na de uit te voeren string, indien aanwezig. Anders is het ingesteld
naar de bestandsnaam die wordt gebruikt om aan te roepen slaan, zoals gegeven door argument nul.
_ Stel bij het opstarten van de shell in op de absolute padnaam die wordt gebruikt om de shell of shell aan te roepen
script wordt uitgevoerd zoals doorgegeven in de omgeving of argumentenlijst. Vervolgens,
breidt uit naar het laatste argument van het vorige commando, na uitbreiding. Ook ingesteld op
de volledige padnaam die wordt gebruikt om elke opdracht aan te roepen die wordt uitgevoerd en in de
omgeving geëxporteerd naar die opdracht. Bij het controleren van e-mail bevat deze parameter de
naam van het e-mailbestand dat momenteel wordt gecontroleerd.

Shell Variabelen
De volgende variabelen worden ingesteld door de shell:

BASH Breidt uit naar de volledige bestandsnaam die is gebruikt om deze instantie van aan te roepen slaan.
BASHOPTEN
Een door dubbele punten gescheiden lijst met ingeschakelde shell-opties. Elk woord in de lijst is geldig
argument voor de -s optie voor de winkelt ingebouwde opdracht (zie SHELL GEBOUWD COMMANDO'S
onderstaand). De opties verschijnen in BASHOPTEN zijn die gerapporteerd als on by winkelt. Indien
deze variabele bevindt zich wanneer in de omgeving slaan opstart, wordt elke shell-optie in het
lijst wordt ingeschakeld voordat er opstartbestanden worden gelezen. Deze variabele is alleen-lezen.
BASHPID
Breidt uit naar de proces-ID van de huidige slaan proces. Dit verschilt van $$ voor
bepaalde omstandigheden, zoals subshells die niet vereisen slaan opnieuw zijn
begonnen.
BASH_ALIASES
Een associatieve matrixvariabele waarvan de leden overeenkomen met de interne lijst van
aliassen zoals onderhouden door de alias ingebouwd. Elementen die aan deze array zijn toegevoegd, verschijnen in
de aliaslijst; het uitschakelen van array-elementen zorgt ervoor dat aliassen uit de alias worden verwijderd
lijst.
BASH_ARGC
Een matrixvariabele waarvan de waarden het aantal parameters zijn in elk frame van de
actueel slaan uitvoering call-stack. Het aantal parameters voor de stroom
subroutine (shell-functie of script uitgevoerd met . or (bron)) staat bovenaan
de stapel. Wanneer een subroutine wordt uitgevoerd, is het aantal doorgegeven parameters
op geduwd BASH_ARGC. De schaal zet BASH_ARGC alleen bij uitgebreide foutopsporing
modus (zie de beschrijving van het extdebug optie voor de winkelt hieronder ingebouwd)
BASH_ARGV
Een matrixvariabele die alle parameters in het huidige bestand bevat slaan uitvoering
bel stapel. De laatste parameter van de laatste subroutineaanroep staat bovenaan de
stapel; de eerste parameter van de eerste aanroep staat onderaan. Wanneer een subroutine
wordt uitgevoerd, worden de geleverde parameters doorgeschoven BASH_ARGV. De schaal zet
BASH_ARGV alleen in de uitgebreide foutopsporingsmodus (zie de beschrijving van het extdebug
optie voor de winkelt hieronder ingebouwd)
BASH_CMDS
Een associatieve matrixvariabele waarvan de leden overeenkomen met de interne hashtabel
van commando's zoals onderhouden door de hachee ingebouwd. Elementen die aan deze array zijn toegevoegd, worden weergegeven
in de hashtabel; het uitschakelen van array-elementen zorgt ervoor dat opdrachten worden verwijderd uit het
hash-tabel.
BASH_COMMAND
Het commando dat momenteel wordt uitgevoerd of op het punt staat te worden uitgevoerd, tenzij de shell dat is
het uitvoeren van een commando als resultaat van een trap, in welk geval het het commando is
uitvoeren op het moment van de val.
BASH_EXECUTION_STRING
Het opdrachtargument voor de -c aanroep optie.
BASH_LINENR
Een matrixvariabele waarvan de leden de regelnummers in bronbestanden zijn, waarbij elk
corresponderend lid van FUNCNAAM werd ingeroepen. ${BASH_LINENO[$i]} is de lijn
nummer in het bronbestand (${BASH_SOURCE[$i+1]}) waar ${FUNCNAME[$i]} heette
(of ${BASH_LINENO[$ i-1]} indien verwezen binnen een andere shell-functie). Gebruik LINENR
om het huidige regelnummer te verkrijgen.
BASH_REMATCH
Een matrixvariabele waarvan de leden worden toegewezen door de =~ binaire operator naar de [[
voorwaardelijke opdracht. Het element met index 0 is het deel van de string
overeenkomen met de volledige reguliere expressie. Het element met index n is het deel van
de string die overeenkomt met de ne tussen haakjes geplaatste subexpressie. Deze variabele is lees-
alleen.
BASH_BRON
Een matrixvariabele waarvan de leden de bronbestandsnamen zijn waar de corresponderende
shell-functienamen in de FUNCNAAM arrayvariabelen zijn gedefinieerd. De schelp
functie ${FUNCNAME[$i]} wordt gedefinieerd in het bestand ${BASH_SOURCE[$i]} en gebeld van
${BASH_SOURCE[$i+1]}.
BASH_SUBSHELL
Verhogen met één binnen elke subshell of subshell-omgeving wanneer de shell
begint met uitvoeren in die omgeving. De beginwaarde is 0.
BASH_VERSINFO
Een alleen-lezen matrixvariabele waarvan de leden versie-informatie voor deze instantie bevatten
of slaan. De waarden die zijn toegewezen aan de arrayleden zijn als volgt:
BASH_VERSINFO[0] Het hoofdversienummer (het los).
BASH_VERSINFO[1] Het nummer van de secundaire versie (het versie).
BASH_VERSINFO[2] Het patch-niveau.
BASH_VERSINFO[3] De bouwversie.
BASH_VERSINFO[4] De vrijgavestatus (bijv. beta1).
BASH_VERSINFO[5] De waarde van MACHTYPE.
BASH_VERSIE
Wordt uitgebreid tot een tekenreeks die de versie beschrijft van deze instantie van slaan.
COMP_CWORD
Een index naar ${COMP_WORDS} van het woord dat de huidige cursorpositie bevat.
Deze variabele is alleen beschikbaar in shell-functies die worden aangeroepen door de programmeerbare
voltooiingsfaciliteiten (zie Programmeerbare Voltooiing hieronder).
COMP_KEY
De sleutel (of laatste sleutel van een toetsenreeks) die wordt gebruikt om de huidige voltooiing aan te roepen
functie.
COMPLETEN
De huidige opdrachtregel. Deze variabele is alleen beschikbaar in shell-functies en
externe commando's die worden aangeroepen door de programmeerbare voltooiingsfaciliteiten (zie
Programmeerbare Voltooiing hieronder).
COMP_POINT
De index van de huidige cursorpositie ten opzichte van het begin van de huidige
commando. Als de huidige cursorpositie zich aan het einde van de huidige opdracht bevindt, wordt de
waarde van deze variabele is gelijk aan ${#COMP_LINE}. Deze variabele is alleen beschikbaar
in shell-functies en externe commando's die worden aangeroepen door de programmeerbare voltooiing
voorzieningen (zie Programmeerbare Voltooiing hieronder).
COMP_TYPE
Stel in op een geheel getal dat overeenkomt met het type voltooiing dat is geprobeerd
zorgde ervoor dat een voltooiingsfunctie werd aangeroepen: TAB, voor normale voltooiing, ?voor
lijst voltooiingen na opeenvolgende tabbladen, !, voor het vermelden van alternatieven op gedeeltelijk
woord voltooiing, @, om voltooiingen weer te geven als het woord niet ongewijzigd is, of %voor
menu voltooiing. Deze variabele is alleen beschikbaar in shell-functies en extern
commando's die worden aangeroepen door de programmeerbare voltooiingsfaciliteiten (zie Programmeerbare
Voltooiing hieronder).
COMP_WORDBREAKS
De reeks tekens die de readline bibliotheek behandelt als woordscheidingstekens when
woordaanvulling uitvoeren. Als COMP_WORDBREAKS uitgeschakeld is, verliest het zijn specialiteit
eigenschappen, zelfs als het daarna opnieuw wordt ingesteld.
COMP_WORDS
Een matrixvariabele (zie arrays hieronder) bestaande uit de afzonderlijke woorden in de
huidige opdrachtregel. De regel is opgesplitst in woorden als readline zou het splitsen,
gebruik COMP_WORDBREAKS zoals hierboven beschreven. Deze variabele is alleen beschikbaar in de shell
functies die worden aangeroepen door de programmeerbare voltooiingsfaciliteiten (zie Programmeerbare
Voltooiing hieronder).
COPROC Een matrixvariabele (zie arrays hieronder) gemaakt om de bestandsbeschrijvingen voor te bewaren
uitvoer van en invoer naar een naamloos coproces (zie Coprocessen bovenstaande).
DIRSTACK
Een matrixvariabele (zie arrays hieronder) met de huidige inhoud van het
mappenstapel. Directory's verschijnen in de stapel in de volgorde waarin ze worden weergegeven
Door de dirs ingebouwd. Het toewijzen aan leden van deze arrayvariabele kan worden gebruikt om
wijzig mappen die zich al in de stapel bevinden, maar de pushd en popd inbouw moet zijn
gebruikt om mappen toe te voegen en te verwijderen. De toewijzing aan deze variabele verandert niet
de huidige map. Als DIRSTACK uitgeschakeld is, verliest het zelfs zijn bijzondere eigenschappen
als het daarna wordt gereset.
EUID Breidt uit naar het effectieve gebruikers-ID van de huidige gebruiker, geïnitialiseerd bij het opstarten van de shell.
Deze variabele is alleen-lezen.
FUNCNAAM
Een matrixvariabele die de namen bevat van alle shell-functies die momenteel in het
uitvoering call-stack. Het element met index 0 is de naam van een momenteel-
shell-functie uitvoeren. Het onderste element (het element met de hoogste index)
is "belangrijkste". Deze variabele bestaat alleen wanneer een shell-functie wordt uitgevoerd.
Opdrachten aan FUNCNAAM geen effect hebben en een foutstatus retourneren. Als FUNCNAAM is
uitgeschakeld, verliest het zijn speciale eigenschappen, zelfs als het daarna wordt gereset.

Deze variabele kan worden gebruikt met BASH_LINENR en BASH_BRON. elk element van
FUNCNAAM heeft overeenkomstige elementen in BASH_LINENR en BASH_BRON om het te beschrijven
bel stapel. Bijvoorbeeld, ${FUNCNAME[$i]} werd gebeld vanuit het dossier
${BASH_SOURCE[$i+1]} op lijnnummer ${BASH_LINENO[$i]}. De bezoeker ingebouwde
geeft de huidige call-stack weer met behulp van deze informatie.
GROEPEN Een matrixvariabele die de lijst met groepen bevat waarvan de huidige gebruiker een is
lid. Opdrachten aan GROEPEN geen effect hebben en een foutstatus retourneren. Als
GROEPEN wordt uitgeschakeld, verliest het zijn speciale eigenschappen, ook als het daarna wordt gereset.
HISTCMD
Het geschiedenisnummer, of index in de geschiedenislijst, van de huidige opdracht. Als
HISTCMD is uitgeschakeld, verliest het zijn speciale eigenschappen, ook als het later is
resetten.
HOSTNAME
Automatisch ingesteld op de naam van de huidige host.
HOSTTYPE
Automatisch ingesteld op een tekenreeks die op unieke wijze het type machine beschrijft waarop
slaan is aan het uitvoeren. De standaardinstelling is systeemafhankelijk.
LINENR Elke keer dat naar deze parameter wordt verwezen, vervangt de shell een decimaal getal
vertegenwoordigt het huidige opeenvolgende regelnummer (beginnend met 1) binnen een script
of functie. Als het zich niet in een script of functie bevindt, is de vervangen waarde dat niet
gegarandeerd zinvol. Als LINENR uitgeschakeld is, verliest het zijn speciale eigenschappen,
zelfs als het daarna wordt gereset.
MACHTYPE
Automatisch ingesteld op een tekenreeks die volledig beschrijft op welk systeemtype slaan is
uitvoeren, in de standaard GNU cpu-bedrijfssysteem formaat. De standaard is systeem-
afhankelijk.
KAARTBESTAND
Een matrixvariabele (zie arrays hieronder) gemaakt om de tekst vast te houden die is gelezen door de mapbestand
ingebouwd als er geen variabelenaam is opgegeven.
OUDE PWD De vorige werkdirectory zoals ingesteld door het cd opdracht.
OPTARG De waarde van het laatste optieargument dat is verwerkt door de getopt ingebouwde opdracht (zie
SHELL GEBOUWD COMMANDO'S hieronder).
OPTIND De index van het volgende argument dat moet worden verwerkt door het getopt ingebouwde opdracht (zie
SHELL GEBOUWD COMMANDO'S hieronder).
OSTYPE Automatisch ingesteld op een tekenreeks die het besturingssysteem beschrijft waarop slaan is
uitvoeren. De standaardinstelling is systeemafhankelijk.
PIJPSTAAT
Een matrixvariabele (zie arrays hieronder) met een lijst met exitstatuswaarden van
de processen in de meest recent uitgevoerde voorgrondpijplijn (die mogelijk
slechts één opdracht).
PPID De proces-ID van de ouder van de shell. Deze variabele is alleen-lezen.
PWD De huidige werkdirectory zoals ingesteld door het cd opdracht.
RANDOM Elke keer dat naar deze parameter wordt verwezen, is een willekeurig geheel getal tussen 0 en 32767
gegenereerd. De reeks willekeurige getallen kan worden geïnitialiseerd door een waarde toe te kennen
naar RANDOM. Indien RANDOM uitgeschakeld is, verliest het zijn speciale eigenschappen, zelfs als dat zo is
vervolgens opnieuw instellen.
READLINE_LINE
De inhoud van de readline lijnbuffer, voor gebruik met "bind -x" (zie SHELL GEBOUWD
COMMANDO'S hieronder).
READLINE_POINT
De positie van het invoegpunt in het readline lijnbuffer, voor gebruik met "bind
-x" (zie SHELL GEBOUWD COMMANDO'S hieronder).
ANTWOORD Stel in op de invoerregel die wordt gelezen door de dit artikel lezen ingebouwde opdracht als er geen argumenten zijn
geleverde.
SECONDS
Telkens wanneer naar deze parameter wordt verwezen, wordt het aantal seconden sinds shell
aanroeping wordt teruggegeven. Als er een waarde is toegekend aan SECONDS, de waarde waarop wordt geretourneerd
volgende referenties is het aantal seconden sinds de toewijzing plus de waarde
toegewezen. Als SECONDS uitgeschakeld is, verliest het zijn speciale eigenschappen, zelfs als dat zo is
vervolgens opnieuw instellen.
SCHELLOPTS
Een door dubbele punten gescheiden lijst met ingeschakelde shell-opties. Elk woord in de lijst is geldig
argument voor de -o optie voor de reeks ingebouwde opdracht (zie SHELL GEBOUWD COMMANDO'S
onderstaand). De opties verschijnen in SCHELLOPTS zijn die gerapporteerd als on by reeks -o. Indien
deze variabele bevindt zich wanneer in de omgeving slaan opstart, wordt elke shell-optie in het
lijst wordt ingeschakeld voordat er opstartbestanden worden gelezen. Deze variabele is alleen-lezen.
SHLVL Verhogen met één telkens wanneer een instantie van slaan is begonnen.
UID Breidt uit naar het gebruikers-ID van de huidige gebruiker, geïnitialiseerd bij het opstarten van de shell. Dit
variabele is alleen-lezen.

De volgende variabelen worden door de shell gebruikt. In sommige gevallen, slaan wijst een standaard toe
waarde aan een variabele; deze gevallen worden hieronder vermeld.

BASH_COMPAT
De waarde wordt gebruikt om het compatibiliteitsniveau van de shell in te stellen. Zie de beschrijving van
de winkelt onder ingebouwd SHELL GEBOUWD COMMANDO'S voor een beschrijving van de
verschillende compatibiliteitsniveaus en hun effecten. De waarde kan een decimaal getal zijn
(bijv. 4.2) of een geheel getal (bijv. 42) dat overeenkomt met de gewenste compatibiliteit
niveau. Als BASH_COMPAT is uitgeschakeld of ingesteld op de lege tekenreeks, het compatibiliteitsniveau
is ingesteld op de standaardwaarde voor de huidige versie. Als BASH_COMPAT is ingesteld op een waarde
dat niet een van de geldige compatibiliteitsniveaus is, drukt de shell een fout af
bericht en stelt het compatibiliteitsniveau in op de standaardwaarde voor de huidige versie.
De geldige compatibiliteitsniveaus komen overeen met de compatibiliteitsopties die zijn geaccepteerd door
de winkelt hieronder beschreven ingebouwd (bijvoorbeeld comp42 betekent dat 4.2 en 42 zijn
geldige waarden). De huidige versie is ook een geldige waarde.
BASH_ENV
Als deze parameter is ingesteld wanneer slaan een shellscript uitvoert, is de waarde ervan
geïnterpreteerd als een bestandsnaam die commando's bevat om de shell te initialiseren, zoals in
~ / .bashrc. De waarde van BASH_ENV wordt onderworpen aan parameteruitbreiding, commando
vervanging en rekenkundige uitbreiding voordat het wordt geïnterpreteerd als een bestandsnaam.
PATH wordt niet gebruikt om te zoeken naar de resulterende bestandsnaam.
BASH_XTRACEFD
Indien ingesteld op een geheel getal dat overeenkomt met een geldige bestandsdescriptor, slaan zal de schrijven
trace-uitvoer gegenereerd wanneer reeks -x is ingeschakeld voor die bestandsdescriptor. Het bestand
descriptor is gesloten wanneer BASH_XTRACEFD is uitgeschakeld of er is een nieuwe waarde aan toegewezen.
Uitschakelen BASH_XTRACEFD of het toewijzen van de lege tekenreeks zorgt ervoor dat de trace-uitvoer naar
worden verzonden naar de standaardfout. Let op die instelling BASH_XTRACEFD tot 2 (de standaard
error file descriptor) en het vervolgens uitschakelen resulteert in de standaardfout
gesloten zijn.
CDPATH Het zoekpad voor de cd commando. Dit is een door dubbele punten gescheiden lijst met mappen
waarin de shell zoekt naar doelmappen gespecificeerd door de cd opdracht.
Een voorbeeldwaarde is ".:~:/ usr".
KIND_MAX
Stel het aantal verlaten onderliggende statuswaarden in dat de shell moet onthouden. Bas zal
niet toestaan ​​dat deze waarde wordt verlaagd tot onder een door POSIX verplicht minimum, en er is een
maximale waarde (momenteel 8192) die deze niet mag overschrijden. De minimale waarde is
systeemafhankelijk.
COLUMNS
Gebruikt door de kiezen samengestelde opdracht om de terminalbreedte te bepalen bij het afdrukken
keuze lijsten. Automatisch ingesteld als de controleerwingrootte optie is ingeschakeld of in een
interactieve shell na ontvangst van een ZIGWINCH.
VOLLEDIG
Een matrixvariabele waaruit slaan leest de mogelijke voltooiingen gegenereerd door een
shell-functie aangeroepen door de programmeerbare voltooiingsfaciliteit (zie Programmeerbare
Voltooiing onderstaand). Elk array-element bevat één mogelijke aanvulling.
EMACS If slaan vindt deze variabele in de omgeving wanneer de shell begint met waarde
"t", het gaat ervan uit dat de shell draait in een Emacs shell buffer en schakelt uit
regel bewerken.
ENV Soortgelijke BASH_ENV; gebruikt wanneer de shell wordt aangeroepen in POSIX-modus.
FCEDIT De standaardeditor voor de fc ingebouwde opdracht.
FIGNEER
Een door dubbele punten gescheiden lijst met achtervoegsels die moeten worden genegeerd bij het voltooien van de bestandsnaam
(Zie LEES REGEL onderstaand). Een bestandsnaam waarvan het achtervoegsel overeenkomt met een van de vermeldingen in
FIGNEER is uitgesloten van de lijst met overeenkomende bestandsnamen. Een voorbeeldwaarde is ".o:~"
(Aanhalingstekens zijn nodig bij het toekennen van een waarde aan deze variabele, die tildes bevat).
FUNCEST
Indien ingesteld op een numerieke waarde groter dan 0, definieert dit een maximaal niveau voor het nesten van functies.
Functieaanroepen die dit geneste niveau overschrijden, veroorzaken de huidige opdracht
afbreken.
GLOBIGNORE
Een door dubbele punten gescheiden lijst met patronen die de set bestandsnamen definiëren die moeten worden genegeerd
padnaam uitbreiding. Als een bestandsnaam overeenkomt met een padnaamuitbreidingspatroon ook
komt overeen met een van de patronen in GLOBIGNORE, wordt het verwijderd uit de lijst met overeenkomsten.
HISTCONTROLE
Een door dubbele punten gescheiden lijst met waarden die bepaalt hoe opdrachten in de geschiedenis worden opgeslagen
lijst. Als de lijst met waarden bevat negeerruimte, regels die beginnen met een ruimte
karakter worden niet opgeslagen in de geschiedenislijst. Een waarde van genegeerde ups veroorzaakt lijnen
overeenkomen met de vorige geschiedenisinvoer om niet te worden opgeslagen. Een waarde van negeer beide is
steno voor negeerruimte en genegeerde ups. een waarde van gewistups oorzaken alle voorgaande
regels die overeenkomen met de huidige regel die daarvoor uit de geschiedenislijst moeten worden verwijderd
lijn is opgeslagen. Elke waarde die niet in de bovenstaande lijst staat, wordt genegeerd. Als HISTCONTROLE is
niet ingesteld, of geen geldige waarde bevat, zijn alle regels die door de shell-parser worden gelezen
opgeslagen op de geschiedenislijst, afhankelijk van de waarde van HISTIGNOR. De tweede en
volgende regels van een samengestelde opdracht met meerdere regels worden niet getest en worden toegevoegd
de geschiedenis ongeacht de waarde van HISTCONTROLE.
GESCHIEDENIS
De naam van het bestand waarin de opdrachtgeschiedenis wordt opgeslagen (zie GESCHIEDENIS onderstaand). De
standaardwaarde is ~ / .bash_geschiedenis. Als dit niet is ingesteld, wordt de opdrachtgeschiedenis niet opgeslagen wanneer
er komt een schelp uit.
HISTFILEGROOTTE
Het maximum aantal regels in het geschiedenisbestand. Wanneer deze variabele is
aan een waarde is toegewezen, wordt het geschiedenisbestand indien nodig afgekapt om er niet meer in te bevatten
dan dat aantal regels door de oudste vermeldingen te verwijderen. Het geschiedenisbestand is ook
afgekapt tot deze grootte nadat het is geschreven wanneer een shell wordt afgesloten. Als de waarde 0 is, wordt de
geschiedenisbestand wordt afgekapt tot nul. Niet-numerieke waarden en numerieke waarden minder
dan nul remmen afkapping. De shell stelt de standaardwaarde in op de waarde van
HISTGROOTTE na het lezen van opstartbestanden.
HISTIGNOR
Een door dubbele punten gescheiden lijst met patronen die worden gebruikt om te bepalen welke opdrachtregels er moeten zijn
opgeslagen in de geschiedenislijst. Elk patroon is verankerd aan het begin van de lijn
en moet overeenkomen met de volledige regel (geen impliciete `*' is toegevoegd). Elk patroon is
getest tegen de lijn na de controles gespecificeerd door HISTCONTROLE zijn toegepast. In
naast de normale karakters die overeenkomen met het shell-patroon, `&' komt overeen met de vorige
geschiedenis lijn. `&' kan worden geëscaped met een backslash; de backslash wordt verwijderd
voordat u een wedstrijd probeert. De tweede en volgende regels van een multiregel
samengestelde commando's worden niet getest en worden toegevoegd aan de geschiedenis, ongeacht de
waarde van HISTIGNOR.
HISTGROOTTE
Het aantal commando's dat onthouden moet worden in de commandogeschiedenis (zie GESCHIEDENIS onderstaand). Als
de waarde is 0, commando's worden niet opgeslagen in de geschiedenislijst. Numerieke waarden minder
dan nul resulteert in het opslaan van elk commando in de geschiedenislijst (er is geen
begrenzing). De shell stelt de standaardwaarde in op 500 na het lezen van opstartbestanden.
ZIJN TIJDFORMAAT
Als deze variabele is ingesteld en niet null, wordt de waarde ervan gebruikt als een opmaaktekenreeks voor
tijd(3) om de tijdstempel af te drukken die is gekoppeld aan elk geschiedenisitem dat wordt weergegeven door
de geschiedenis ingebouwd. Als deze variabele is ingesteld, worden tijdstempels naar het
history-bestand zodat ze kunnen worden bewaard in alle shell-sessies. Hierbij wordt gebruik gemaakt van de historie
commentaarteken om tijdstempels te onderscheiden van andere geschiedenisregels.
HOME De thuismap van de huidige gebruiker; het standaardargument voor de cd ingebouwde
commando. De waarde van deze variabele wordt ook gebruikt bij het uitvoeren van tilde-expansie.
HOSTBESTAND
Bevat de naam van een bestand in dezelfde indeling als / Etc / hosts dat moet gelezen worden
wanneer de shell een hostnaam moet invullen. De lijst met mogelijke hostnamen
voltooiingen kunnen worden gewijzigd terwijl de shell draait; de volgende keer hostnaam
voltooiing wordt geprobeerd nadat de waarde is gewijzigd, slaan voegt de inhoud van de
nieuw bestand toe aan de bestaande lijst. Als HOSTBESTAND is ingesteld, maar geen waarde heeft, of niet
noem een ​​leesbaar bestand, slaan probeert te lezen / Etc / hosts om de lijst van te verkrijgen
mogelijke voltooiingen van de hostnaam. Wanneer HOSTBESTAND is uitgeschakeld, de lijst met hostnamen is
gewist.
IFS De Intern Veld Separator dat wordt gebruikt voor het splitsen van woorden na uitbreiding en tot
splits regels in woorden met de dit artikel lezen ingebouwde opdracht. De standaardwaarde is
`` ''.
NEGEEREOF
Regelt de actie van een interactieve shell bij ontvangst van een EOF karakter als de
enige invoer. Indien ingesteld, is de waarde het aantal opeenvolgende EOF karakters die
moet worden getypt als de eerste tekens op een invoerregel ervoor slaan uitgangen. Als de
variabele bestaat maar heeft geen numerieke waarde, of heeft geen waarde, de standaardwaarde
waarde is 10. Als het niet bestaat, EOF betekent het einde van de invoer naar de shell.
INGANG
De bestandsnaam voor de readline opstartbestand, met voorrang op de standaard van ~ / .inputrc
(Zie LEES REGEL hieronder).
TAAL Wordt gebruikt om de locatiecategorie te bepalen voor elke categorie die niet specifiek is geselecteerd
met een variabele die begint met LC_.
LC_ALL Deze variabele overschrijft de waarde van TAAL en alle andere LC_ variabele die een specificeert
lokale categorie.
LC_COLLATE
Deze variabele bepaalt de sorteervolgorde die wordt gebruikt bij het sorteren van de resultaten van
padnaamuitbreiding en bepaalt het gedrag van bereikuitdrukkingen, equivalentie
klassen, en het verzamelen van sequenties binnen padnaamuitbreiding en patroonvergelijking.
LC_CTYPE
Deze variabele bepaalt de interpretatie van karakters en het gedrag van
tekenklassen binnen padnaamuitbreiding en patroonovereenkomst.
LC_MESSAGES
Deze variabele bepaalt de landinstelling die wordt gebruikt om tekenreeksen met dubbele aanhalingstekens te vertalen
voorafgegaan door a $.
LC_NUMERIC
Deze variabele bepaalt de landinstellingscategorie die wordt gebruikt voor getalopmaak.
LIJNEN Gebruikt door de kiezen samengestelde opdracht om de kolomlengte voor afdrukken te bepalen
keuze lijsten. Automatisch ingesteld als de controleerwingrootte optie is ingeschakeld of in een
interactieve shell na ontvangst van een ZIGWINCH.
MAIL Als deze parameter is ingesteld op een bestands- of mapnaam en de MAILPAD variabele is
niet ingesteld, slaan informeert de gebruiker over de aankomst van e-mail in het opgegeven bestand of
Directory in Maildir-indeling.
MAILCHECK
Specificeert hoe vaak (in seconden) slaan cheques voor post. De standaardwaarde is 60 seconden.
Wanneer het tijd is om te controleren of er mail is, doet de shell dit voordat de primaire wordt weergegeven
snel. Als deze variabele niet is ingesteld, of is ingesteld op een waarde die geen getal groter is
dan of gelijk aan nul, schakelt de shell mailcontrole uit.
MAILPAD
Een door dubbele punten gescheiden lijst met bestandsnamen die moeten worden gecontroleerd op e-mail. De boodschap om te zijn
afgedrukt wanneer e-mail in een bepaald bestand aankomt, kan worden gespecificeerd door de
bestandsnaam uit het bericht met een `?'. Bij gebruik in de tekst van het bericht, $_
wordt uitgebreid naar de naam van het huidige mailbestand. Voorbeeld:
MAILPAD='/var/mail/bfox?"Je hebt mail":~/shell-mail?"$_ heeft post!"'
Slaan levert een standaardwaarde voor deze variabele, maar de locatie van de gebruiker mail
bestanden die het gebruikt is systeemafhankelijk (bijv. /var/mail/$ GEBRUIKER).
OPTERR Indien ingesteld op de waarde 1, slaan geeft foutmeldingen weer die zijn gegenereerd door de getopt
ingebouwde opdracht (zie SHELL GEBOUWD COMMANDO'S hieronder). OPTERR wordt geïnitialiseerd op 1
elke keer dat de shell wordt aangeroepen of een shellscript wordt uitgevoerd.
PATH Het zoekpad voor opdrachten. Het is een door dubbele punten gescheiden lijst van mappen waarin
de shell zoekt naar commando's (zie COMMAND EXECUTIE onderstaand). Een lengte nul (nul)
mapnaam in de waarde van PATH geeft de huidige map aan. Een nul
mapnaam kan verschijnen als twee aangrenzende dubbele punten, of als een initiaal of volgnummer
dubbele punt. Het standaardpad is systeemafhankelijk en wordt ingesteld door de beheerder who
installaties slaan. Een gemeenschappelijke waarde is ``/ Usr / local / bin:/ usr / local / sbin:/ Usr / bin:
/ usr / sbin:/ bin:/ sbin''.
POSIXLY_CORRECT
Als deze variabele zich in de omgeving bevindt wanneer slaan begint, de schaal komt binnen posix
mode voordat u de opstartbestanden leest, alsof de --positief aanroepingsmogelijkheid was geweest
geleverd. Als het is ingesteld terwijl de shell draait, slaan maakt posix mode, alsof
het bevel reeks -o posix was geëxecuteerd.
PROMPT_COMMAND
Indien ingesteld, wordt de waarde uitgevoerd als een opdracht voordat elke primaire prompt wordt uitgegeven.
PROMPT_DIRTRIM
Indien ingesteld op een getal groter dan nul, wordt de waarde gebruikt als het volgnummer
directory-componenten die moeten worden behouden bij het uitbreiden van het \w en \W promptreeks ontsnapt
(Zie PROMPT onderstaand). Verwijderde tekens worden vervangen door een weglatingsteken.
PS1 De waarde van deze parameter is uitgebreid (zie PROMPT hieronder) en gebruikt als de
primaire promptreeks. De standaardwaarde is ``\s-\v\$ ''.
PS2 De waarde van deze parameter wordt uitgebreid zoals met PS1 en gebruikt als secundair
promptreeks. De standaardwaarde is ``> ''.
PS3 De waarde van deze parameter wordt gebruikt als prompt voor het kiezen opdracht (zie SHELL
GRAMMATICA bovenstaande).
PS4 De waarde van deze parameter wordt uitgebreid zoals met PS1 en de waarde is eerder afgedrukt
elk commando slaan wordt weergegeven tijdens een uitvoeringstracering. Het eerste karakter van PS4
wordt indien nodig meerdere keren herhaald om meerdere niveaus van aan te geven
indirectie. De standaardwaarde is ``+ ''.
SHELL De volledige padnaam naar de shell wordt bewaard in deze omgevingsvariabele. Als het niet is
instellen wanneer de shell start, slaan wijst er de volledige padnaam van de stroom aan toe
login-shell van de gebruiker.
TIJD FORMAAT
De waarde van deze parameter wordt gebruikt als een formaattekenreeks die specificeert hoe de timing
informatie voor pijpleidingen voorafgegaan door de niet de tijd of gereserveerd woord moet worden weergegeven.
De % karakter introduceert een ontsnappingsreeks die wordt uitgebreid tot een tijdwaarde of
andere informatie. De ontsnappingsreeksen en hun betekenis zijn als volgt; de
accolades geven optionele delen aan.
%% een letterlijke %.
%[p][l]R De verstreken tijd in seconden.
%[p][l]U Het aantal CPU-seconden doorgebracht in de gebruikersmodus.
%[p][l]S Het aantal CPU-seconden doorgebracht in systeemmodus.
%P Het CPU-percentage, berekend als (%U + %S) / %R.

De optionele p is een cijfer dat de nauwkeurigheid, het aantal gebroken cijfers
na een komma. Een waarde van 0 zorgt ervoor dat er geen decimale punt of breuk is
uitvoer. Er mogen maximaal drie plaatsen achter de komma worden opgegeven; waarden van p
groter dan 3 worden gewijzigd in 3. Als p niet is opgegeven, wordt de waarde 3 gebruikt.

De optionele l specificeert een langer formaat, inclusief minuten, van het formulier MMmSS.FFs.
De waarde van p bepaalt of de breuk al dan niet wordt opgenomen.

Als deze variabele niet is ingesteld, slaan doet alsof het de waarde heeft
$'\nreal\t%3lR\gebruiker\t%3lU\nsys\t%3lS'. Als de waarde null is, geen timing
informatie wordt weergegeven. Een afsluitende nieuwe regel wordt toegevoegd wanneer de opmaaktekenreeks is
weergegeven.
TMOUT Indien ingesteld op een waarde groter dan nul, TMOUT wordt behandeld als de standaard time-out voor
de dit artikel lezen ingebouwd. De kiezen opdracht wordt beëindigd als de invoer daarna niet arriveert
TMOUT seconden wanneer de invoer afkomstig is van een terminal. In een interactieve shell, de
waarde wordt geïnterpreteerd als het aantal seconden dat moet worden gewacht op een invoerregel
het geven van de primaire prompt. Slaan eindigt na het wachten op dat aantal
seconden als er geen volledige invoerregel binnenkomt.
TMPDIR Indien ingesteld, slaan gebruikt zijn waarde als de naam van een map waarin slaan creëert
tijdelijke bestanden voor gebruik door de shell.
auto_hervatten
Deze variabele bepaalt hoe de shell samenwerkt met de gebruiker en taakcontrole. Als
deze variabele is ingesteld, enkelvoudige commando's van één woord zonder omleidingen worden behandeld
als kandidaten voor hervatting van een bestaande gestopte baan. Er is geen onduidelijkheid
toegestaan; als er meer dan één taak is die begint met de ingevoerde tekenreeks, wordt de taak
meest recent geopend is geselecteerd. De naam van een gestopte baan is in deze context
de opdrachtregel die werd gebruikt om het te starten. Indien ingesteld op de waarde exact, de meegeleverde tekenreeks
moet exact overeenkomen met de naam van een gestopte taak; indien ingesteld op deelstring, de snaar
opgegeven moet overeenkomen met een subtekenreeks van de naam van een gestopte taak. De deelstring
waarde biedt functionaliteit analoog aan de %? taakidentificatie (zie JOB CONTROL
onderstaand). Indien ingesteld op een andere waarde, moet de opgegeven tekenreeks een voorvoegsel zijn van a
naam van gestopte taak; dit biedt functionaliteit analoog aan de %snaar baan
id.
geschiedenis
De twee of drie karakters die de geschiedenisuitbreiding en tokenisatie regelen (zie
GESCHIEDENIS UITBREIDING onderstaand). Het eerste karakter is de geschiedenis uitbreiding karakter,
het karakter dat het begin aangeeft van een geschiedenisuitbreiding, normaal gesproken `!'. De
tweede karakter is de rápido vervanging karakter, dat wordt gebruikt als afkorting
voor het opnieuw uitvoeren van het vorige ingevoerde commando, waarbij de ene string door de andere wordt vervangen in
het bevel. De standaardwaarde is `^'. Het optionele derde karakter is het karakter
wat aangeeft dat de rest van de regel een opmerking is wanneer deze als eerste wordt gevonden
karakter van een woord, normaal gesproken `#'. Het geschiedeniscommentaarteken veroorzaakt geschiedenis
vervanging die moet worden overgeslagen voor de resterende woorden op de regel. Het doet niet
zorgen er noodzakelijkerwijs voor dat de shell-parser de rest van de regel als commentaar behandelt.

arrays
Slaan biedt eendimensionale geïndexeerde en associatieve arrayvariabelen. Elke variabele mag
worden gebruikt als een geïndexeerde array; de verklaren builtin zal expliciet een array declareren. Daar
is geen maximale limiet voor de grootte van een array, noch enige vereiste dat leden worden geïndexeerd
of aangrenzend toegewezen. Naar geïndexeerde arrays wordt verwezen met behulp van gehele getallen (inclusief
rekenkundige uitdrukkingen) en zijn gebaseerd op nul; associatieve arrays worden verwezen met behulp van
willekeurige strings. Tenzij anders vermeld, moeten geïndexeerde array-indices niet-negatief zijn
gehele getallen.

Er wordt automatisch een geïndexeerde array gemaakt als er een variabele wordt toegewezen aan het gebruik van de syntaxis
naam[subscript]=waarde. De subscript wordt behandeld als een rekenkundige uitdrukking die moet
evalueren tot een getal. Gebruik om expliciet een geïndexeerde array te declareren verklaren -a naam (Zie
SHELL GEBOUWD COMMANDO'S hieronder). verklaren -a naam[subscript] wordt ook geaccepteerd; de subscript
wordt genegeerd.

Associatieve arrays worden gemaakt met behulp van verklaren -A naam.

Attributen kunnen worden gespecificeerd voor een arrayvariabele met behulp van de verklaren en alleen lezen ingebouwde.
Elk kenmerk is van toepassing op alle leden van een array.

Arrays worden toegewezen aan het gebruik van samengestelde toewijzingen van het formulier naam=(waarde1 ... waarden),
waar elk waarde is van de vorm [subscript]=snaar. Geïndexeerde arraytoewijzingen niet
alles behalve nodig hebben snaar. Bij het toewijzen aan geïndexeerde arrays, als de optionele haakjes
en subscript worden geleverd, wordt die index toegewezen; anders de index van het element
toegewezen is de laatste index waaraan de instructie plus één is toegewezen. Indexeren begint om
nul.

Bij het toewijzen aan een associatieve array is het subscript vereist.

Deze syntaxis wordt ook geaccepteerd door de verklaren ingebouwd. Individuele array-elementen kunnen dat zijn
toegewezen aan het gebruik van de naam[subscript]=waarde syntaxis die hierboven is geïntroduceerd. Bij toewijzing aan een
geïndexeerde array, als naam wordt gesubscripteerd door een negatief getal, wordt dat getal geïnterpreteerd als
ten opzichte van één groter dan de maximale index van naam, dus negatieve indices tellen terug
vanaf het einde van de array, en een index van -1 verwijst naar het laatste element.

Naar elk element van een array kan worden verwezen met behulp van ${naam[subscript]}. De beugels zijn
vereist om conflicten met padnaamuitbreiding te voorkomen. Als subscript is @ or *, het woord
breidt uit naar alle leden van naam. Deze subscripts verschillen alleen wanneer het woord erin voorkomt
dubbele aanhalingstekens. Als het woord tussen dubbele aanhalingstekens staat, ${naam[*]} breidt zich uit tot een enkel woord met de
waarde van elk arraylid gescheiden door het eerste teken van de IFS speciale variabele,
en ${naam[@]} breidt elk element van uit naam naar een apart woord. Wanneer er geen array is
leden, ${naam[@]} breidt uit naar niets. Als de uitbreiding tussen dubbele aanhalingstekens plaatsvindt binnen a
word, wordt de uitbreiding van de eerste parameter samengevoegd met het begingedeelte van de
oorspronkelijke woord, en de uitbreiding van de laatste parameter wordt samengevoegd met het laatste deel van de
oorspronkelijk woord. Dit is analoog aan de uitbreiding van de speciale parameters * en @ (Zie
special parameters boven). ${#naam[subscript]} breidt zich uit tot de lengte van
${naam[subscript]}. Als subscript is * or @, de uitbreiding is het aantal elementen in
de reeks. Verwijzen naar een matrixvariabele zonder subscript is gelijk aan verwijzen
de array met een subscript van 0. Als de subscript gebruikt om te verwijzen naar een element van een
geïndexeerde array resulteert in een getal kleiner dan nul, het wordt geïnterpreteerd als relatief ten opzichte van één
groter dan de maximale index van de array, dus negatieve indices tellen terug vanaf het einde
van de array, en een index van -1 verwijst naar het laatste element.

Een matrixvariabele wordt als ingesteld beschouwd als aan een subscript een waarde is toegewezen. De nul
tekenreeks is een geldige waarde.

Het is mogelijk om zowel de sleutels (indices) van een array als de waarden te verkrijgen.
${!naam[@]} en ${!naam[*]} uitbreiden naar de indexen die zijn toegewezen in de matrixvariabele naam. De
behandeling tussen dubbele aanhalingstekens is vergelijkbaar met de uitbreiding van de speciale parameters @
en * tussen dubbele aanhalingstekens.

De uitgeschakeld ingebouwde wordt gebruikt om arrays te vernietigen. uitgeschakeld naam[subscript] vernietigt de array
element bij index subscript. Negatieve subscripts op geïndexeerde arrays worden geïnterpreteerd als
hierboven omschreven. Voorzichtigheid is geboden om ongewenste neveneffecten veroorzaakt door padnaam te voorkomen
uitbreiding. uitgeschakeld naam, Waar naam is een array, of uitgeschakeld naam[subscript], waar subscript
is * or @, verwijdert de hele array.

De verklaren, lokaal en alleen lezen ingebouwde apparaten accepteren elk een -a optie om een ​​geïndexeerd
array en een -A optie om een ​​associatieve array op te geven. Als beide opties zijn geleverd, -A
heeft voorrang. De dit artikel lezen ingebouwde accepteert een -a optie om een ​​lijst met gelezen woorden toe te wijzen
van de standaard invoer naar een array. De reeks en verklaren ingebouwde elementen geven matrixwaarden weer in
een manier waarop ze kunnen worden hergebruikt als opdrachten.

UITBREIDING


Uitbreiding wordt uitgevoerd op de opdrachtregel nadat deze is opgesplitst in woorden. Er zijn
zeven soorten expansie uitgevoerd: sintels uitbreiding, tilde uitbreiding, parameter en
variabele uitbreiding, commando vervanging, rekenkundig uitbreiding, woord splitsen en
padnaam uitbreiding.

De volgorde van uitbreidingen is: accolade uitbreiding; tilde uitbreiding, parameter en variabele
uitbreiding, rekenkundige uitbreiding en opdrachtvervanging (uitgevoerd in een van links naar rechts
mode); woord splitsen; en uitbreiding van de padnaam.

Op systemen die dit kunnen ondersteunen, is er een extra uitbreiding beschikbaar:
vervanging. Dit wordt tegelijk met tilde, parameter, variabele en uitgevoerd
rekenkundige uitbreiding en opdrachtvervanging.

Alleen accolade-uitbreiding, woordsplitsing en padnaamuitbreiding kunnen het aantal wijzigen
woorden van de uitbreiding; andere uitbreidingen breiden een enkel woord uit tot een enkel woord. De enige
uitzonderingen hierop zijn de uitbreidingen van "$@"En"${naam[@]}"zoals hierboven uitgelegd (zie
PARAMETERS).

Beugel Uitbreiding
Beugel uitbreiding is een mechanisme waarmee willekeurige strings kunnen worden gegenereerd. Dit
mechanisme is vergelijkbaar met padnaam uitbreiding, maar de gegenereerde bestandsnamen hoeven niet te bestaan.
Patronen die met een beugel moeten worden uitgebreid, hebben de vorm van een optionele preambule, gevolgd door ofwel een
reeks door komma's gescheiden tekenreeksen of een reeksuitdrukking tussen een paar accolades,
gevolgd door een optioneel postscriptum. De preambule wordt voorafgegaan door elke tekenreeks
tussen de accolades, en het naschrift wordt vervolgens toegevoegd aan elke resulterende tekenreeks, uitbreidend
van links naar rechts.

Brace-uitbreidingen kunnen genest zijn. De resultaten van elke uitgevouwen tekenreeks worden niet gesorteerd; links
juiste volgorde behouden blijft. Bijvoorbeeld een{d,c,b}e breidt zich uit tot `ade aas abe'.

Een reeksuitdrukking neemt de vorm aan {x..y[..incl]}, Waar x en y zijn gehele getallen of
enkele karakters, en incl, een optionele verhoging, is een geheel getal. Wanneer gehele getallen zijn
geleverd, wordt de uitdrukking uitgebreid naar elk getal ertussen x en y, inclusief. Geleverd
gehele getallen kunnen worden voorafgegaan door 0 om elke term te dwingen dezelfde breedte te hebben. Wanneer ofwel x
or y begint met een nul, probeert de shell alle gegenereerde termen te forceren om de
hetzelfde aantal cijfers, waar nodig opgevuld met nul. Wanneer tekens worden opgegeven, wordt de
uitdrukking breidt zich lexicografisch uit naar elk teken tussen x en y, inclusief, gebruiken
de standaard C-landinstelling. Merk op dat beide x en y moet van hetzelfde type zijn. Wanneer de
increment wordt geleverd, wordt het gebruikt als het verschil tussen elke term. De standaard
verhoging is 1 of -1 naargelang het geval.

Brace-uitbreiding wordt uitgevoerd vóór alle andere uitbreidingen en eventuele speciale tekens
andere uitbreidingen blijven behouden in het resultaat. Het is strikt tekstueel. Slaan niet
elke syntactische interpretatie toepassen op de context van de uitbreiding of de tekst tussen de
een beugel.

Een correct gevormde accolade-uitbreiding moet niet-geciteerde openende en sluitende accolades bevatten, en
ten minste één niet-aangehaalde komma of een geldige reeksuitdrukking. Elke verkeerd gevormde beugel
uitbreiding blijft ongewijzigd. A { or , kan worden aangehaald met een backslash om te voorkomen dat het bestaat
beschouwd als onderdeel van een accolade-expressie. Om conflicten met parameteruitbreiding te voorkomen, is de
snaar ${ komt niet in aanmerking voor beugeluitbreiding.

Deze constructie wordt meestal gebruikt als afkorting wanneer het gemeenschappelijke voorvoegsel van de tekenreeksen is
gegenereerd is langer dan in het bovenstaande voorbeeld:

mkdir /usr/local/src/bash/{oud,nieuw,dist,bugs}
or
gekauwde wortel / usr /{ucb/{ex,bewerk},lib/{ex?.?*,how_ex}}

Brace-uitbreiding introduceert een lichte onverenigbaarheid met historische versies van sh. sh
behandelt het openen of sluiten van accolades niet speciaal wanneer ze als onderdeel van een woord voorkomen, en
bewaart ze in de uitvoer. Slaan verwijdert accolades van woorden als gevolg van accolades
uitbreiding. Bijvoorbeeld een woord ingevoerd om sh as bestand{1,2} komt identiek voor in de
uitvoer. Hetzelfde woord wordt uitgevoerd als file1 file2 na uitbreiding met slaan. Indien streng
compatibiliteit met sh gewenst is, begin slaan met de +B optie of schakel accolade-uitbreiding uit
met de +B optie voor de reeks opdracht (zie SHELL GEBOUWD COMMANDO'S hieronder).

tilde Uitbreiding
Als een woord begint met een niet-geciteerd tilde-teken (`~'), alle voorafgaande tekens
de eerste niet-aangehaalde schuine streep (of alle tekens, als er geen niet-aangehaalde schuine streep is) worden beschouwd
a tilde-voorvoegsel. Als geen van de tekens in het tilde-voorvoegsel tussen aanhalingstekens staat, worden de tekens
in het tilde-voorvoegsel na de tilde worden behandeld als mogelijk Log in naam. Als dit
loginnaam is de null-tekenreeks, de tilde wordt vervangen door de waarde van de shell-parameter
HOME. Indien HOME is uitgeschakeld, wordt de thuismap van de gebruiker die de shell uitvoert vervangen
in plaats van. Anders wordt het tilde-voorvoegsel vervangen door de bijbehorende homedirectory
de opgegeven inlognaam.

Als het tilde-voorvoegsel een `~+' is, de waarde van de shell-variabele PWD vervangt de tilde-
voorvoegsel. Als het tilde-voorvoegsel een `~-' is, de waarde van de shell-variabele OUDE PWD, als het is
ingesteld, wordt vervangen. Als de tekens na de tilde in het tilde-voorvoegsel bestaan ​​uit
een getal N, optioneel voorafgegaan door een `+' of een `-', wordt het tilde-voorvoegsel vervangen door het
overeenkomstig element uit de directorystack, zoals het zou worden weergegeven door de dirs
builtin aangeroepen met het tilde-voorvoegsel als argument. Als de tekens die volgen op de
tilde in het tilde-voorvoegsel bestaat uit een getal zonder voorafgaande `+' of `-', `+' is
verondersteld.

Als de inlognaam ongeldig is of de tilde-uitbreiding mislukt, blijft het woord ongewijzigd.

Elke variabeletoewijzing wordt onmiddellijk na a gecontroleerd op niet-geciteerde tilde-prefixen :
of de eerste =. In deze gevallen wordt ook tilde-expansie uitgevoerd. Bijgevolg kan men
gebruik bestandsnamen met tildes in toewijzingen aan PATH, MAILPAD en CDPATH, en de schil
wijst de uitgebreide waarde toe.

Parameter Uitbreiding
de `$'-teken introduceert parameteruitbreiding, opdrachtvervanging of rekenen
uitbreiding. De parameternaam of het uit te breiden symbool kan tussen accolades staan
zijn optioneel, maar dienen om de uit te breiden variabele onmiddellijk te beschermen tegen tekens
erna, wat kan worden geïnterpreteerd als onderdeel van de naam.

Wanneer accolades worden gebruikt, is de overeenkomende eindaccolade de eerste `}' niet ontsnapt door een
backslash of binnen een tekenreeks tussen aanhalingstekens, en niet binnen een ingebedde rekenkundige uitbreiding,
opdrachtvervanging of parameteruitbreiding.

${parameter}
De waarde van parameter wordt vervangen. De beugels zijn nodig wanneer parameter is een
positionele parameter met meer dan één cijfer, of wanneer parameter wordt gevolgd door een
karakter dat niet moet worden geïnterpreteerd als onderdeel van de naam. De parameter is een
shell-parameter zoals hierboven beschreven PARAMETERS) of een arrayreferentie (arrays).

Als het eerste teken van parameter is een uitroepteken (!), introduceert het een niveau van
variabele richting. Slaan gebruikt de waarde van de variabele gevormd uit de rest van
parameter als de naam van de variabele; deze variabele wordt vervolgens uitgebreid en die waarde is
gebruikt in de rest van de vervanging, in plaats van de waarde van parameter zelf. Dit is
bekend als indirect uitbreiding. Uitzonderingen hierop zijn de uitbreidingen van ${!voorvoegsel*} en
${!naam[@]} hieronder beschreven. Het uitroepteken moet onmiddellijk volgen op de linker accolade
om indirectheid te introduceren.

In elk van de onderstaande gevallen woord is onderhevig aan tilde-uitbreiding, parameteruitbreiding,
opdrachtvervanging en rekenkundige uitbreiding.

Wanneer u geen subtekenreeksuitbreiding uitvoert, gebruikt u de onderstaande formulieren (bijv. :-), slaan
test op een parameter die niet is ingesteld of null is. Het weglaten van de dubbele punt resulteert alleen in een test
voor een parameter die niet is ingesteld.

${parameter:-woord}
Te gebruiken Standaard Values. Indien parameter is niet ingesteld of null, de uitbreiding van woord is
vervangen. Anders is de waarde van parameter wordt vervangen.
${parameter:=woord}
Toewijzen Standaard Values. Indien parameter is niet ingesteld of null, de uitbreiding van woord is
toegewezen aan parameter. De waarde van parameter wordt dan vervangen. Positioneel
parameters en speciale parameters mogen niet op deze manier worden toegewezen.
${parameter:?woord}
Display Fout if Null or ongezet. Indien parameter is null of niet ingesteld, de uitbreiding van
woord (of een bericht met die strekking als woord niet aanwezig is) wordt geschreven naar de
standaardfout en de shell, als deze niet interactief is, wordt afgesloten. Anders de
waarde van parameter wordt vervangen.
${parameter:+woord}
Te gebruiken Afwisselend Waarde. Indien parameter is null of niet ingesteld, niets wordt vervangen,
anders de uitbreiding van woord wordt vervangen.
${parameter:compenseren}
${parameter:compenseren:lengte}
Subtekenreeks Uitbreiding. Uitbreidbaar tot en met lengte karakters van de waarde van parameter
beginnend bij het teken gespecificeerd door compenseren. Indien parameter is @, een geïndexeerde array
geabonneerd door @ or *, of een associatieve arraynaam, verschillen de resultaten als
hieronder beschreven. Als lengte wordt weggelaten, wordt uitgebreid naar de subtekenreeks van de waarde van
parameter beginnend bij het teken gespecificeerd door compenseren en strekt zich uit tot het einde van
de waarde. lengte en compenseren zijn rekenkundige uitdrukkingen (zie REKENKUNDIG EVALUATIE
hieronder).

If compenseren resulteert in een getal kleiner dan nul, wordt de waarde gebruikt als een offset in
tekens vanaf het einde van de waarde van parameter. Indien lengte evalueert naar een getal
kleiner dan nul, wordt het geïnterpreteerd als een verschuiving in tekens vanaf het einde van de
waarde van parameter in plaats van een aantal karakters, en de uitbreiding is de
karakters tussen compenseren en dat resultaat. Merk op dat er een negatieve offset moet zijn
gescheiden van de dubbele punt door ten minste één spatie om verwarring met de te voorkomen :-
uitbreiding.

If parameter is @, het resultaat is lengte positionele parameters beginnend bij compenseren.
Een negatief compenseren wordt genomen ten opzichte van één groter dan de grootste positionele
parameter, dus een offset van -1 resulteert in de laatste positionele parameter. Het is een
uitbreiding fout als lengte resulteert in een getal kleiner dan nul.

If parameter is een geïndexeerde arraynaam met een subscript van @ of *, het resultaat is de
lengte leden van de array beginnend met ${parameter[compenseren]}. Een negatief compenseren
wordt genomen ten opzichte van één groter dan de maximale index van de opgegeven array. Het
is een uitbreidingsfout als lengte resulteert in een getal kleiner dan nul.

Subtekenreeksuitbreiding toegepast op een associatieve array levert ongedefinieerde resultaten op.

Indexering van subtekenreeksen is gebaseerd op nul, tenzij de positionele parameters worden gebruikt, in
in dat geval begint de indexering standaard bij 1. Als compenseren is 0, en de positionele
parameters worden gebruikt, $0 wordt voorafgegaan door de lijst.

${!voorvoegsel*}
${!voorvoegsel@}
namen matching voorvoegsel. Breidt uit naar de namen van variabelen waarvan de naam begint met
voorvoegsel, gescheiden door het eerste teken van de IFS speciale variabele. Wanneer @ is
gebruikt en de uitbreiding verschijnt tussen dubbele aanhalingstekens, wordt elke variabelenaam uitgebreid naar
een apart woord.

${!naam[@]}
${!naam[*]}
Lijst of reeks toetsen. Indien naam is een matrixvariabele, wordt uitgebreid naar de lijst met arrays
indexen (toetsen) toegewezen in naam. Indien naam is geen array, breidt uit naar 0 als naam is
set en anders nul. Wanneer @ wordt gebruikt en de uitbreiding verschijnt binnen het dubbele
aanhalingstekens, wordt elke toets uitgebreid naar een afzonderlijk woord.

${#parameter}
Parameter lengte. De lengte in tekens van de waarde van parameter is
vervangen. Als parameter is * or @, de vervangen waarde is het aantal
positionele parameters. Als parameter is een arraynaam met een subscript van * or @
waarde vervangen is het aantal elementen in de array. Als parameter is een
geïndexeerde arraynaam gesubscripteerd door een negatief getal, wordt dat getal geïnterpreteerd als
ten opzichte van één groter dan de maximale index van parameter, dus negatieve indices
tel terug vanaf het einde van de array en een index van -1 verwijst naar de laatste
element.

${parameter#woord}
${parameter##woord}
verwijderen matching voorvoegsel patroon. De woord wordt uitgebreid om net zo een patroon te produceren
in padnaamuitbreiding. Als het patroon overeenkomt met het begin van de waarde van
parameter, dan is het resultaat van de uitbreiding de uitgebreide waarde van parameter Met
het kortste overeenkomende patroon (de ``#'' geval) of het langste overeenkomende patroon (de
``##'' geval) verwijderd. Als parameter is @ or *, de bewerking voor het verwijderen van patronen is
achtereenvolgens toegepast op elke positionele parameter, en de expansie is het resultaat
lijst. Als parameter is een matrixvariabele met subscript @ or *, het patroon
verwijderingsbewerking wordt beurtelings op elk lid van de array toegepast, en de uitbreiding
is de resulterende lijst.

${parameter%woord}
${parameter%%woord}
verwijderen matching achtervoegsel patroon. De woord wordt uitgebreid om net zo een patroon te produceren
in padnaamuitbreiding. Als het patroon overeenkomt met een achterliggend gedeelte van het uitgevouwen
waarde van parameter, dan is het resultaat van de uitbreiding de uitgebreide waarde van
parameter met het kortste overeenkomende patroon (de ``%'' geval) of de langste
overeenkomend patroon (de ``%%'' geval) verwijderd. Als parameter is @ or *, het patroon
verwijderingsbewerking wordt achtereenvolgens toegepast op elke positionele parameter, en de
uitbreiding is de resulterende lijst. Als parameter is een subscript van een arrayvariabele
Met @ or *, wordt de bewerking voor het verwijderen van patronen toegepast op elk lid van de array
op zijn beurt, en de uitbreiding is de resulterende lijst.

${parameter/patroon/snaar}
Patronen vervanging. De patroon wordt uitgebreid om een ​​patroon te produceren net als in
padnaam uitbreiding. Parameter wordt uitgebreid en de langste wedstrijd van patroon tegen
de waarde ervan wordt vervangen door snaar. Indien patroon begint met /, alle wedstrijden van
patroon worden vervangen door snaar. Normaal gesproken wordt alleen de eerste wedstrijd vervangen. Als
patroon begint met #, moet het overeenkomen aan het begin van de uitgebreide waarde van
parameter. Indien patroon begint met %, moet het overeenkomen aan het einde van de uitgebreide
waarde van parameter. Indien snaar is null, wedstrijden van patroon worden verwijderd en de /
volgend patroon kan worden weggelaten. Als parameter is @ or *, de vervanging
bewerking wordt achtereenvolgens toegepast op elke positionele parameter, en de uitbreiding is de
resulterende lijst. Als parameter is een matrixvariabele met subscript @ or *
substitutiebewerking wordt beurtelings toegepast op elk lid van de array, en de
uitbreiding is de resulterende lijst.

${parameter^patroon}
${parameter^^patroon}
${parameter,patroon}
${parameter,,patroon}
SITUATIE wijziging. Deze uitbreiding wijzigt het hoofdlettergebruik van alfabetische tekens in
parameter. De patroon wordt uitgebreid om een ​​patroon te produceren net als in padnaam
uitbreiding. Elk teken in de uitgebreide waarde van parameter wordt op de proef gesteld
patroon, en als het overeenkomt met het patroon, wordt het hoofdlettergebruik geconverteerd. Het patroon moet
probeer niet meer dan één personage te matchen. De ^ operator zet kleine letters om
brieven overeenkomen patroon naar hoofdletters; de , operator converteert overeenkomende hoofdletters
letters naar kleine letters. De ^^ en ,, uitbreidingen zetten elk overeenkomend karakter om in
de uitgebreide waarde; de ^ en , uitbreidingen matchen en converteren alleen de eerste
teken in de uitgebreide waarde. Als patroon wordt weggelaten, wordt het behandeld als een ?,
die bij elk personage past. Als parameter is @ or *, de zaakwijziging
bewerking wordt achtereenvolgens toegepast op elke positionele parameter, en de uitbreiding is de
resulterende lijst. Als parameter is een matrixvariabele met subscript @ or *
hoofdletterwijziging wordt achtereenvolgens toegepast op elk lid van de array, en de
uitbreiding is de resulterende lijst.

commando Vervanging
commando vervanging staat de uitvoer van een opdracht toe om de opdrachtnaam te vervangen. Daar
zijn twee vormen:

$(commando)
or
`commando`

Slaan voert de uitbreiding uit door uit te voeren commando en het vervangen van de opdrachtvervanging
met de standaarduitvoer van de opdracht, waarbij eventuele nieuwe regels worden verwijderd. Ingebed
nieuwe regels worden niet verwijderd, maar kunnen wel worden verwijderd tijdens het splitsen van woorden. Het bevel
vervanging $(kat) filet) kan worden vervangen door het equivalent, maar sneller $( filet).

Wanneer de ouderwetse backquote-vorm van vervanging wordt gebruikt, behoudt de backslash zijn letterlijke waarde
betekenis behalve wanneer gevolgd door $, `of \. De eerste backquote niet voorafgegaan door een a
backslash beëindigt de opdrachtvervanging. Bij gebruik van de $(commando) vorm, alles
tekens tussen haakjes vormen het commando; geen enkele wordt speciaal behandeld.

Opdrachtvervangingen kunnen genest zijn. Om te nesten bij gebruik van het teruggeciteerde formulier, escape de
innerlijke backquotes met backslashes.

Als de vervanging wordt weergegeven tussen dubbele aanhalingstekens, woordsplitsing en padnaamuitbreiding
worden niet uitgevoerd op de resultaten.

Rekenkunde Uitbreiding
Rekenkundige uitbreiding maakt de evaluatie van een rekenkundige uitdrukking en de
vervanging van het resultaat. Het formaat voor rekenkundige uitbreiding is:

$((uitdrukking))

Het oude formaat $[uitdrukking] is verouderd en zal worden verwijderd in toekomstige versies van
bashen.

De uitdrukking wordt behandeld alsof het tussen dubbele aanhalingstekens staat, maar een dubbel aanhalingsteken erin
de haakjes wordt niet speciaal behandeld. Alle tokens in de uitdrukking ondergaan parameter
en variabele uitbreiding, opdrachtvervanging en verwijdering van aanhalingstekens. Het resultaat wordt behandeld als
de rekenkundige uitdrukking die moet worden geëvalueerd. Rekenkundige uitbreidingen kunnen genest zijn.

De evaluatie wordt uitgevoerd volgens de onderstaande regels REKENKUNDIG
EVALUATIE. Indien uitdrukking is ongeldig, slaan drukt een bericht af dat aangeeft dat het mislukt is en nee
substitutie optreedt.

Proces Vervanging
Proces vervanging wordt ondersteund op systemen die named pipes ondersteunen (FIFO's) of de
/dev/fd methode voor het benoemen van geopende bestanden. Het heeft de vorm van <(lijst) or >(lijst). De
lijst wordt uitgevoerd met zijn in- of uitgang verbonden met a FIFO of een bestand erin /dev/fd.
De naam van dit bestand wordt doorgegeven als een argument aan de huidige opdracht als resultaat van de
uitbreiding. Als de >(lijst) formulier wordt gebruikt, zal het schrijven naar het bestand input leveren voor lijst.
Indien de <(lijst) formulier wordt gebruikt, moet het bestand dat als argument wordt doorgegeven, worden gelezen om het
output van lijst.

Indien beschikbaar wordt procesvervanging gelijktijdig met parameter en uitgevoerd
variabele uitbreiding, opdrachtvervanging en rekenkundige uitbreiding.

Woord Splitsen
De shell scant de resultaten van parameteruitbreiding, opdrachtvervanging en rekenen
uitbreiding die niet voorkwam binnen dubbele aanhalingstekens voor woord splitsen.

De shell behandelt elk karakter van IFS als scheidingsteken en splitst de resultaten van de ander
uitbreidingen in woorden met behulp van deze karakters als veldterminators. Als IFS is uitgeschakeld, of
de waarde is precies , de standaard, dan reeksen van , ,
en aan het begin en einde van de resultaten van de vorige uitbreidingen zijn
genegeerd, en elke volgorde van IFS tekens die niet aan het begin of einde staan, dienen ter afbakening
woorden. Als IFS een andere waarde heeft dan de standaardwaarde, dan sequenties van de witruimte
tekens ruimte en tab worden genegeerd aan het begin en einde van het woord, zolang de
witruimteteken is in de waarde van IFS (een IFS witruimte-teken). Elk karakter
in IFS dat is niet IFS witruimte, samen met eventuele aangrenzende IFS witruimte tekens,
begrenst een veld. Een reeks van IFS witruimtetekens worden ook behandeld als een scheidingsteken.
Als de waarde van IFS nul is, vindt er geen woordsplitsing plaats.

Expliciete null-argumenten ("" or '') worden behouden. Niet-geciteerde impliciete null-argumenten,
resulterend uit de uitbreiding van parameters die geen waarden hebben, worden verwijderd. Als een
parameter zonder waarde wordt geëxpandeerd tussen dubbele aanhalingstekens, een null-argument resulteert en is
behouden.

Merk op dat als er geen uitbreiding plaatsvindt, er geen splitsing wordt uitgevoerd.

Padnaam Uitbreiding
Na het splitsen van woorden, tenzij de -f optie is ingesteld, slaan scant elk woord voor de
tekens *, ? en [. Als een van deze tekens voorkomt, wordt het woord beschouwd als
a patroon, en vervangen door een alfabetisch gesorteerde lijst met bestandsnamen die overeenkomen met de
patroon (zie Patronen Bijpassende onderstaand). Als er geen overeenkomende bestandsnamen worden gevonden, en de shell
optie nulglob niet is ingeschakeld, blijft het woord ongewijzigd. Als de nulglob Optie is
ingesteld en er worden geen overeenkomsten gevonden, wordt het woord verwijderd. Als de falenglob shell-optie is ingesteld,
en er geen overeenkomsten worden gevonden, wordt een foutmelding afgedrukt en wordt de opdracht niet uitgevoerd. Als
de shell-optie geencaseglob is ingeschakeld, wordt de match uitgevoerd ongeacht de casus
van alfabetische tekens. Merk op dat bij het gebruik van bereikuitdrukkingen zoals [az] (zie hieronder),
letters van het andere geval kunnen worden opgenomen, afhankelijk van de instelling van LC_COLLATE. Wanneer een
patroon wordt gebruikt voor padnaamuitbreiding, het karakter ``.'' aan het begin van een naam of
direct na een schuine streep moet expliciet overeenkomen, tenzij de shell-optie stippellijn
is ingesteld. Bij het matchen van een padnaam moet het slash-teken altijd expliciet overeenkomen.
In andere gevallen is het ``.'' karakter wordt niet speciaal behandeld. Zie de beschrijving van
winkelt onder SHELL GEBOUWD COMMANDO'S voor een beschrijving van de geencaseglob, nulglob,
falenglob en stippellijn shell-opties.

De GLOBIGNORE shell-variabele kan worden gebruikt om de set bestandsnamen te beperken die overeenkomen met a
patroon. Indien GLOBIGNORE is ingesteld, elke overeenkomende bestandsnaam die ook overeenkomt met een van de
patronen in GLOBIGNORE wordt verwijderd uit de lijst met overeenkomsten. De bestandsnamen ``.'' en
``..'' worden altijd genegeerd wanneer GLOBIGNORE is ingesteld en niet null. Echter instellen
GLOBIGNORE naar een niet-null waarde heeft het effect van het inschakelen van de stippellijn shell-optie, dus alles
andere bestandsnamen beginnend met een ``.'' zal overeenkomen. Om het oude gedrag van negeren te krijgen
bestandsnamen beginnend met een ``.''maken ``.*'' een van de patronen in GLOBIGNORE. De
stippellijn optie is uitgeschakeld wanneer GLOBIGNORE is uitgeschakeld.

Patronen Bijpassende

Elk teken dat in een patroon voorkomt, behalve de speciale patroontekens
hieronder beschreven, komt overeen met zichzelf. Het NUL-teken mag niet voorkomen in een patroon. A
backslash ontsnapt aan het volgende teken; de escape backslash wordt weggegooid wanneer
bij elkaar passen. De speciale patroontekens moeten tussen aanhalingstekens staan ​​als ze moeten overeenkomen
letterlijk.

De speciale patroontekens hebben de volgende betekenis:

* Komt overeen met elke tekenreeks, inclusief de null-tekenreeks. Wanneer de wereldster schelp
optie is ingeschakeld, en * wordt gebruikt in een padnaamuitbreidingscontext, twee
aangrenzend *s die als een enkel patroon worden gebruikt, komen overeen met alle bestanden en nul of meer
mappen en submappen. Indien gevolgd door een /, twee aangrenzende *s zal
komen alleen overeen met mappen en submappen.
? Komt overeen met elk afzonderlijk teken.
[...] Komt overeen met een van de ingesloten tekens. Een paar tekens gescheiden
door een koppelteken geeft een aan reeks uitdrukking; elk karakter dat ertussen valt
die twee karakters, inclusief, gebruikmakend van de huidige locale sortering
volgorde en tekenset, komt overeen. Als het eerste teken volgt
de [ is een ! of ^ dan komt elk karakter dat niet ingesloten is overeen. De
sorteervolgorde van tekens in bereikuitdrukkingen wordt bepaald door de
huidige locale en de waarden van de LC_COLLATE or LC_ALL shell-variabelen,
indien ingesteld. Om de traditionele interpretatie van bereikuitdrukkingen te verkrijgen,
WAAR [advertentie] is gelijk aan [abcd], ingestelde waarde van de LC_ALL shell-variabele
naar C, of schakel de globale reeksen shell-optie. A - kan worden geëvenaard door
inclusief het als het eerste of laatste teken in de set. A ] kan worden afgestemd
door het op te nemen als het eerste personage in de set.

Binnen [ en ], karakter klassen kan worden gespecificeerd met behulp van de syntaxis
[:klasse:], Waar klasse is een van de volgende klassen gedefinieerd in de POSIX
standaard:
oudjaar alpha ascii blanco controle cijfer diagram te verlagen print punt ruimte bovenste woord
xcijfer
Een karakterklasse komt overeen met elk karakter dat tot die klasse behoort. De woord
tekenklasse komt overeen met letters, cijfers en het teken _.

Binnen [ en ]een gelijkwaardigheid klasse kan worden gespecificeerd met behulp van de syntaxis
[=c=], die overeenkomt met alle tekens met hetzelfde sorteergewicht (als
gedefinieerd door de huidige landinstelling) als het teken c.

Binnen [ en ], de syntaxis [.symbool.] komt overeen met het sorteersymbool symbool.

Indien de extglob shell-optie is ingeschakeld met behulp van de winkelt ingebouwd, verschillende uitgebreide patronen
overeenkomende operatoren worden herkend. In de volgende beschrijving, een patroonlijst is een lijst
van een of meer patronen gescheiden door een |. Samengestelde patronen kunnen worden gevormd met behulp van een of
meer van de volgende subpatronen:

?(patroonlijst)
Komt overeen met nul of één voorkomen van de gegeven patronen
*(patroonlijst)
Komt overeen met nul of meer exemplaren van de gegeven patronen
+(patroonlijst)
Komt overeen met een of meer exemplaren van de gegeven patronen
@(patroonlijst)
Komt overeen met een van de gegeven patronen
!(patroonlijst)
Komt overeen met alles behalve een van de gegeven patronen

Offerte Verwijdering
Na de voorgaande uitbreidingen, alle niet-geciteerde voorkomens van de karakters \, ' en "
die niet voortkwamen uit een van de bovenstaande uitbreidingen, worden verwijderd.

OMLEIDING


Voordat een opdracht wordt uitgevoerd, kan de in- en uitvoer ervan zijn doorgestuurd met behulp van een speciale
notatie geïnterpreteerd door de shell. Door omleiding kunnen de bestandsingangen van commando's worden
gedupliceerd, geopend, gesloten, gemaakt om naar verschillende bestanden te verwijzen, en kan de bestanden wijzigen
opdracht leest van en schrijft naar. Omleiding kan ook worden gebruikt om bestandsingangen in te wijzigen
de huidige shell-uitvoeringsomgeving. De volgende omleidingsoperatoren kunnen voorafgaan
of ergens binnen a verschijnen simpel commando of kan volgen op een commando. Omleidingen zijn
verwerkt in de volgorde waarin ze verschijnen, van links naar rechts.

Elke omleiding die kan worden voorafgegaan door een bestandsdescriptornummer kan in plaats daarvan worden voorafgegaan
door een woord van de vorm {vernaam}. In dit geval voor elke omleidingsoperator behalve >&-
en <&-, zal de shell een bestandsdescriptor groter dan of gelijk aan 10 toewijzen en toewijzen
het aan vernaam. Als >&- of <&- wordt voorafgegaan door {vernaam}, de waarde van vernaam definieert de
bestandsbeschrijving om te sluiten.

In de volgende beschrijvingen, als het bestandsdescriptornummer wordt weggelaten, en het eerste
karakter van de omleidingsoperator is <, verwijst de omleiding naar de standaardinvoer
(bestandsbeschrijving 0). Als het eerste teken van de omleidingsoperator is >
omleiding verwijst naar de standaarduitvoer (bestandsdescriptor 1).

Het woord na de omleidingsoperator in de volgende beschrijvingen, tenzij
anders vermeld, wordt onderworpen aan accolade-expansie, tilde-expansie, parameter en variabele
uitbreiding, vervanging van commando's, rekenkundige uitbreiding, verwijdering van aanhalingstekens, uitbreiding van padnaam,
en woordsplitsing. Als het uitbreidt naar meer dan één woord, slaan meldt een fout.

Merk op dat de volgorde van omleidingen significant is. Bijvoorbeeld de opdracht

ls > dirlijst 2>&1

stuurt zowel standaarduitvoer als standaardfout naar het bestand agenda, terwijl het commando

is 2>&1 > agenda

stuurt alleen de standaard uitvoer naar bestand agenda, omdat de standaardfout was
gedupliceerd van de standaarduitvoer voordat de standaarduitvoer werd omgeleid agenda.

Slaan behandelt verschillende bestandsnamen, speciaal wanneer ze worden gebruikt in omleidingen, zoals beschreven
in de volgende tabel:

/dev/fd/fd
If fd is een geldig geheel getal, bestandsbeschrijving fd wordt gedupliceerd.
/dev/stdin
Bestandsbeschrijving 0 wordt gedupliceerd.
/dev/stdout
Bestandsbeschrijving 1 wordt gedupliceerd.
/dev/stderr
Bestandsbeschrijving 2 wordt gedupliceerd.
/dev/tcp/gastheer/port
If gastheer is een geldige hostnaam of internetadres, en port is een gehele poort
nummer of servicenaam, slaan probeert de overeenkomstige TCP-socket te openen.
/dev/udp/gastheer/port
If gastheer is een geldige hostnaam of internetadres, en port is een gehele poort
nummer of servicenaam, slaan probeert de overeenkomstige UDP-socket te openen.

Als een bestand niet kan worden geopend of gemaakt, mislukt de omleiding.

Omleidingen die gebruik maken van bestandsbeschrijvingen groter dan 9 moeten met zorg worden gebruikt, zoals mogelijk
conflicteren met bestandsbeschrijvingen die de shell intern gebruikt.

Merk op dat de exec ingebouwde opdracht kan ervoor zorgen dat omleidingen van kracht worden in de huidige shell.

Omleiden Invoer
Omleiding van invoer zorgt ervoor dat het bestand waarvan de naam het resultaat is van de uitbreiding van woord te
geopend voor lezen op bestandsdescriptor n, of de standaardinvoer (bestandsdescriptor 0) als n is
niet gespecificeerd.

Het algemene formaat voor het omleiden van invoer is:

[n]<woord

Omleiden uitgang
Omleiding van uitvoer zorgt ervoor dat het bestand waarvan de naam het resultaat is van de uitbreiding van woord te
geopend voor schrijven op bestandsdescriptor n, of de standaarduitvoer (bestandsdescriptor 1) if n
wordt niet gespecificeerd. Als het bestand niet bestaat, wordt het aangemaakt; als het bestaat is het
afgekapt tot grootte nul.

Het algemene formaat voor het omleiden van uitvoer is:

[n]>woord

Als de omleidingsoperator is >En geen gek optie voor de reeks ingebouwd is geweest
ingeschakeld, zal de omleiding mislukken als het bestand waarvan de naam het resultaat is van de uitbreiding van
woord bestaat en is een regulier bestand. Als de omleidingsoperator is >|, of de omleiding
exploitant is > en geen gek optie voor de reeks ingebouwde opdracht is niet ingeschakeld, de
omleiding wordt geprobeerd, zelfs als het bestand met de naam by woord bestaat.

toevoegen Doorgestuurd uitgang
Omleiding van uitvoer op deze manier zorgt ervoor dat het bestand waarvan de naam het resultaat is van de
uitbreiding van woord te openen om toe te voegen aan bestandsdescriptor nof de standaarduitvoer
(bestandsbeschrijving 1) als n wordt niet gespecificeerd. Als het bestand niet bestaat, wordt het aangemaakt.

Het algemene formaat voor het toevoegen van uitvoer is:

[n]>>woord

Omleiden Standaard uitgang en Standaard Fout
Deze constructie staat zowel de standaarduitvoer (bestandsdescriptor 1) als de standaardfout toe
uitvoer (bestandsdescriptor 2) om te worden omgeleid naar het bestand waarvan de naam de uitbreiding is van
woord.

Er zijn twee indelingen voor het omleiden van standaarduitvoer en standaardfout:

&>woord
en
>&woord

Van de twee vormen heeft de eerste de voorkeur. Dit is semantisch gelijk aan

>woord 2>&1

Bij gebruik van het tweede formulier woord mag niet worden uitgebreid tot een getal of -. Als dat zo is, andere
omleidingsoperators zijn van toepassing (zie Dupliceren Dien in descriptoren hieronder) voor compatibiliteit
redenen.

toevoegen Standaard uitgang en Standaard Fout
Deze constructie staat zowel de standaarduitvoer (bestandsdescriptor 1) als de standaardfout toe
uitvoer (bestandsdescriptor 2) die moet worden toegevoegd aan het bestand waarvan de naam de uitbreiding is van woord.

Het formaat voor het toevoegen van standaarduitvoer en standaardfout is:

&>>woord

Dit is semantisch gelijk aan

>>woord 2>&1

(Zie Dupliceren Dien in descriptoren hieronder).

Here Documenten
Dit type omleiding instrueert de shell om invoer van de huidige bron te lezen totdat a
regel die alleen bevat scheidingsteken (zonder losse spaties) wordt gezien. Alle regels gelezen
tot dat moment worden dan gebruikt als standaardinvoer voor een commando.

Het formaat van hier-documenten is:

<<[-]woord
hier-document
scheidingsteken

Geen uitbreiding van parameters en variabelen, vervanging van commando's, rekenkundige uitbreiding of
padnaamuitbreiding wordt uitgevoerd op woord. Als er tekens in woord worden geciteerd, de
scheidingsteken is het resultaat van citaatverwijdering op woord, en de regels in het hier-document zijn
niet uitgebreid. Als woord niet wordt geciteerd, zijn alle regels van het hier-document onderworpen
parameteruitbreiding, opdrachtvervanging en rekenkundige uitbreiding, het teken
volgorde \ wordt genegeerd, en \ moet worden gebruikt om de tekens te citeren \, $ en `.

Als de omleidingsoperator is <<-, dan worden alle leidende tabtekens verwijderd
invoerregels en de regel die bevat scheidingsteken. Dit maakt here-documenten binnen shell mogelijk
scripts op natuurlijke wijze inspringen.

Here Strings
Een variant van hier documenten, het formaat is:

<<woord

De woord ondergaat accolade-expansie, tilde-expansie, parameter- en variabele-expansie,
opdrachtvervanging, rekenkundige uitbreiding en verwijdering van aanhalingstekens. Padnaamuitbreiding en
woordsplitsing wordt niet uitgevoerd. Het resultaat wordt geleverd als een enkele string aan de
opdracht op zijn standaardinvoer.

Dupliceren Dien in descriptoren
De omleidingsoperator

[n]<&woord

wordt gebruikt om descriptors van invoerbestanden te dupliceren. Als woord uitbreidt naar een of meer cijfers, de
bestandsbeschrijving aangeduid met n is gemaakt om een ​​kopie te zijn van die bestandsdescriptor. Als de cijfers
in woord specificeer geen bestandsbeschrijving open voor invoer, er treedt een omleidingsfout op. Als
woord evalueert naar -, bestandsbeschrijving n is gesloten. Als n is niet gespecificeerd, de standaard
invoer (bestandsdescriptor 0) wordt gebruikt.

De operator

[n]>&woord

wordt op dezelfde manier gebruikt om descriptors van uitvoerbestanden te dupliceren. Als n is niet gespecificeerd, de
standaarduitvoer (bestandsdescriptor 1) wordt gebruikt. Als de cijfers in woord geef geen bestand op
descriptor geopend voor uitvoer, treedt er een omleidingsfout op. Als woord evalueert naar -, Bestand
descriptor n is gesloten. Als een speciaal geval, als n wordt weggelaten, en woord breidt niet uit naar
een of meer cijfers of -, worden de standaarduitvoer en de standaardfout omgeleid als
eerder beschreven.

bewegend Dien in descriptoren
De omleidingsoperator

[n]<&cijfer-

verplaatst de bestandsbeschrijving cijfer naar bestandsbeschrijving n, of de standaardinvoer (file
descriptor 0) als n is niet gespecificeerd. cijfer wordt gesloten na te zijn gedupliceerd n.

Evenzo de omleidingsoperator

[n]>&cijfer-

verplaatst de bestandsbeschrijving cijfer naar bestandsbeschrijving n, of de standaarduitvoer (file
descriptor 1) als n is niet gespecificeerd.

Opening Dien in descriptoren For lezing en schrijf-
De omleidingsoperator

[n]<>woord

zorgt ervoor dat het bestand waarvan de naam de uitbreiding is van woord te openen voor zowel lezen als
schrijven op bestandsdescriptor n, of op bestandsdescriptor 0 als n wordt niet gespecificeerd. Als het bestand
bestaat niet, wordt gemaakt.

ALIASES


Aliassen toestaan ​​dat een tekenreeks wordt vervangen door een woord wanneer het wordt gebruikt als het eerste woord van een
eenvoudige opdracht. De shell houdt een lijst bij van aliassen die kunnen worden in- en uitgeschakeld met de
alias en alias ingebouwde commando's (zie SHELL GEBOUWD COMMANDO'S onderstaand). Het eerste woord van
elk eenvoudig commando, als het niet tussen aanhalingstekens staat, wordt gecontroleerd om te zien of het een alias heeft. Zo ja, dat woord
wordt vervangen door de tekst van de alias. De karakters /, $, ` en = en een van de schelpen
metatekens of aanhalingstekens die hierboven zijn vermeld, verschijnen mogelijk niet in een aliasnaam. De
vervangende tekst mag elke geldige shell-invoer bevatten, inclusief shell-metatekens. De
eerste woord van de vervangende tekst wordt getest op aliassen, maar een woord dat identiek is aan
een alias die wordt uitgebreid, wordt niet een tweede keer uitgebreid. Dit betekent dat men een alias mag hebben ls
naar ls -F, bijvoorbeeld, en slaan probeert de vervangende tekst niet recursief uit te breiden.
Als het laatste teken van de aliaswaarde een blanco, dan volgt het volgende commandowoord
de alias wordt ook gecontroleerd op aliasuitbreiding.

Aliassen worden gemaakt en vermeld met de alias opdracht, en verwijderd met de alias
opdracht.

Er is geen mechanisme voor het gebruik van argumenten in de vervangende tekst. Als argumenten zijn
nodig is, moet een shell-functie worden gebruikt (zie FUNCTIES hieronder).

Aliassen worden niet uitgebreid als de shell niet interactief is, tenzij de expand_aliassen
shell-optie wordt ingesteld met behulp van winkelt (zie de beschrijving van winkelt voor SHELL GEBOUWD COMMANDO'S
hieronder).

De regels met betrekking tot de definitie en het gebruik van aliassen zijn enigszins verwarrend. Slaan
leest altijd ten minste één volledige regel invoer voordat een van de opdrachten wordt uitgevoerd
die lijn. Aliassen worden uitgebreid wanneer een opdracht wordt gelezen, niet wanneer deze wordt uitgevoerd.
Daarom wordt een aliasdefinitie die op dezelfde regel verschijnt als een andere opdracht niet geaccepteerd
effect totdat de volgende invoerregel wordt gelezen. De opdrachten die volgen op de aliasdefinitie
op die lijn worden niet beïnvloed door de nieuwe alias. Dit gedrag is ook een probleem wanneer
functies worden uitgevoerd. Aliassen worden uitgebreid wanneer een functiedefinitie wordt gelezen, niet wanneer
de functie wordt uitgevoerd, omdat een functiedefinitie zelf een samengesteld commando is. Als
als gevolg hiervan zijn aliassen die in een functie zijn gedefinieerd pas na die functie beschikbaar
is geëxecuteerd. Zet voor de zekerheid aliasdefinities altijd op een aparte regel en gebruik ze niet
alias in samengestelde commando's.

Voor bijna elk doel worden aliassen vervangen door shell-functies.

FUNCTIES


Een shell-functie, gedefinieerd zoals hierboven beschreven onder SHELL GRAMMATICA, slaat een reeks op
opdrachten voor latere uitvoering. Wanneer de naam van een shell-functie wordt gebruikt als een eenvoudig
opdrachtnaam, wordt de lijst met opdrachten die aan die functienaam zijn gekoppeld, uitgevoerd.
Functies worden uitgevoerd in de context van de huidige shell; er wordt geen nieuw proces voor gemaakt
interpreteer ze (vergelijk dit met het uitvoeren van een shellscript). Wanneer een functie is
uitgevoerd, worden de argumenten voor de functie de positionele parameters tijdens de uitvoering ervan
executie. De speciale parameter # wordt bijgewerkt om de wijziging weer te geven. Speciale parameters 0
is onveranderd. Het eerste onderdeel van de FUNCNAAM variabele is ingesteld op de naam van de
functie terwijl de functie wordt uitgevoerd.

Alle andere aspecten van de shell-uitvoeringsomgeving zijn identiek tussen een functie en
de beller met deze uitzonderingen: de DEBUG en RETURN vallen (zie de beschrijving van de
val ingebouwd onder SHELL GEBOUWD COMMANDO'S hieronder) worden niet geërfd tenzij de functie heeft
de gegeven opsporen attribuut (zie de beschrijving van het verklaren hieronder ingebouwd) of de
-o functie shell-optie is ingeschakeld met de reeks ingebouwd (in welk geval alle
functies erven de DEBUG en RETURN vallen), en de ERR trap wordt niet geërfd, tenzij
de -o fout shell-optie is ingeschakeld.

Variabelen die lokaal zijn voor de functie kunnen worden gedeclareerd met de lokaal ingebouwde opdracht.
Gewoonlijk worden variabelen en hun waarden gedeeld tussen de functie en de aanroeper.

De FUNCEST variabele, indien ingesteld op een numerieke waarde groter dan 0, definieert een maximum
functie nesting niveau. Functieaanroepen die de limiet overschrijden, veroorzaken de hele
opdracht af te breken.

Als het ingebouwde commando terugkeer wordt uitgevoerd in een functie, voltooit de functie en
de uitvoering wordt hervat met de volgende opdracht na de functieaanroep. Elke bijbehorende opdracht
met de RETURN trap wordt uitgevoerd voordat de uitvoering wordt hervat. Wanneer een functie is voltooid, wordt de
waarden van de positionele parameters en de speciale parameter # worden teruggezet naar de waarden
ze hadden voorafgaand aan de uitvoering van de functie.

Functienamen en definities kunnen worden vermeld met de -f optie voor de verklaren or gezet
ingebouwde commando's. De -F optie om verklaren or gezet geeft alleen de functienamen weer
(en optioneel het bronbestand en regelnummer, als de extdebug shell-optie is ingeschakeld).
Functies kunnen worden geëxporteerd zodat subshells ze automatisch laten definiëren met de -f
optie voor de exporteren ingebouwd. Een functiedefinitie kan worden verwijderd met behulp van de -f optie om
de uitgeschakeld ingebouwd. Merk op dat shell-functies en variabelen met dezelfde naam kunnen resulteren
in meerdere vermeldingen met dezelfde naam in de omgeving doorgegeven aan de kinderen van de shell.
Voorzichtigheid is geboden in gevallen waarin dit een probleem kan veroorzaken.

Functies kunnen recursief zijn. De FUNCEST variabele kan worden gebruikt om de diepte van de
functieaanroepstapel en beperk het aantal functieaanroepen. Standaard geen limiet
wordt opgelegd op het aantal recursieve oproepen.

REKENKUNDIG EVALUATIE


Met de shell kunnen rekenkundige uitdrukkingen onder bepaalde omstandigheden worden geëvalueerd (zie
de laten en verklaren ingebouwde commando's en Rekenkunde Uitbreiding). Evaluatie vindt plaats in
gehele getallen met een vaste breedte zonder controle op overflow, hoewel deling door 0 is ingevangen en
gemarkeerd als een fout. De operatoren en hun prioriteit, associativiteit en waarden zijn
hetzelfde als in de C-taal. De volgende lijst met operators is gegroepeerd in niveaus van
operatoren met gelijke prioriteit. De niveaus zijn weergegeven in volgorde van afnemende prioriteit.

id++ id--
variabele post-increment en post-decrement
++id --id
variabele pre-increment en pre-decrement
- + unaire min en plus
! ~ logische en bitsgewijze ontkenning
** machtsverheffing
* / % vermenigvuldigen, delen, rest
+ - optellen, aftrekken
<< >> bitsgewijze verschuivingen naar links en rechts
<= >= < >
vergelijking
== != gelijkheid en ongelijkheid
& bitsgewijs EN
^ bitsgewijze exclusieve OR
| bitsgewijs OF
&& logisch EN
|| logische OF
uitdrukken?uitdrukken:uitdrukken
voorwaardelijke operator
= *= /= %= += -= << = &= ^= |=
toewijzing
uitdr1 , uitdr2
komma

Shell-variabelen zijn toegestaan ​​als operanden; parameteruitbreiding wordt uitgevoerd vóór de
uitdrukking wordt geëvalueerd. Binnen een uitdrukking kan ook naar shell-variabelen worden verwezen door
name zonder gebruik te maken van de parameteruitbreidingssyntaxis. Een shell-variabele die null of niet is ingesteld
resulteert in 0 wanneer naar naam wordt verwezen zonder de syntaxis van parameteruitbreiding te gebruiken. De
waarde van een variabele wordt geëvalueerd als een rekenkundige uitdrukking wanneer ernaar wordt verwezen, of
wanneer een variabele die is gegeven de geheel getal attribuut met behulp van verklaren -i is toegewezen aan een
waarde. Een null-waarde resulteert in 0. Een shell-variabele hoeft zijn geheel getal attribuut
ingeschakeld om in een uitdrukking te worden gebruikt.

Constanten met een leidende 0 worden geïnterpreteerd als octale getallen. Een leidende 0x of 0X geeft aan
hexadecimaal. Anders hebben getallen de vorm [baseren#]n, waar de optionele baseren is een
decimaal getal tussen 2 en 64 dat de rekenkundige basis vertegenwoordigt, en n is een getal erin
die basis. Als baseren# wordt weggelaten, dan wordt grondtal 10 gebruikt. Bij het specificeren n, de cijfers
groter < dan 9 worden weergegeven door de kleine letters, de hoofdletters, @ en _,
in die volgorde. Als baseren is kleiner dan of gelijk aan 36, kleine letters en hoofdletters mogen
worden door elkaar gebruikt om getallen tussen 10 en 35 weer te geven.

Operators worden beoordeeld in volgorde van prioriteit. Subuitdrukkingen tussen haakjes zijn
eerst geëvalueerd en kunnen de bovenstaande voorrangsregels overschrijven.

VOORWAARDELIJK UITDRUKKINGEN


Voorwaardelijke uitdrukkingen worden gebruikt door de [[ samengesteld commando en de proef en [ ingebouwde
commando's om bestandskenmerken te testen en tekenreeks- en rekenkundige vergelijkingen uit te voeren.
Uitdrukkingen worden gevormd uit de volgende unaire of binaire voorverkiezingen. Indien van toepassing filet argument
naar een van de voorverkiezingen is van de vorm /dev/fd/n, dan bestandsbeschrijving n is nagekeken. Als
de filet argument voor een van de voorverkiezingen is er een van /dev/stdin, /dev/stdoutof
/dev/stderr, wordt respectievelijk bestandsdescriptor 0, 1 of 2 aangevinkt.

Tenzij anders aangegeven, volgen voorverkiezingen die werken op bestanden symbolische koppelingen en
opereren op het doel van de link, in plaats van op de link zelf.

Bij gebruik bij [[ < en > operators sorteren lexicografisch met behulp van de huidige locale.
De proef opdracht sorteert met behulp van ASCII-volgorde.

-a filet
waar als filet bestaat.
-b filet
waar als filet bestaat en is een speciaal blokbestand.
-c filet
waar als filet bestaat en is een speciaal tekenbestand.
-d filet
waar als filet bestaat en is een directory.
-e filet
waar als filet bestaat.
-f filet
waar als filet bestaat en is een normaal bestand.
-g filet
waar als filet bestaat en is set-groep-id.
-h filet
waar als filet bestaat en is een symbolische link.
-k filet
waar als filet bestaat en zijn ``sticky'' bit is ingesteld.
-p filet
waar als filet bestaat en is een named pipe (FIFO).
-r filet
waar als filet bestaat en is leesbaar.
-s filet
waar als filet bestaat en heeft een grootte groter dan nul.
-t fd Waar als bestandsbeschrijving fd is open en verwijst naar een terminal.
-u filet
waar als filet bestaat en zijn set-user-id-bit is ingesteld.
-w filet
waar als filet bestaat en is beschrijfbaar.
-x filet
waar als filet bestaat en is uitvoerbaar.
-G filet
waar als filet bestaat en is eigendom van de effectieve groeps-ID.
-L filet
waar als filet bestaat en is een symbolische link.
-N filet
waar als filet bestaat en is gewijzigd sinds het voor het laatst werd gelezen.
-O filet
waar als filet bestaat en is eigendom van de effectieve gebruikers-ID.
-S filet
waar als filet bestaat en is een stopcontact.
file1 -als file2
waar als file1 en file2 verwijzen naar dezelfde apparaat- en inodenummers.
file1 -nt file2
waar als file1 nieuwer is (volgens wijzigingsdatum) dan file2, of als file1
bestaat en file2 doet niet.
file1 -ot file2
waar als file1 is ouder dan file2, of als file2 bestaat en file1 doet niet.
-o optnaam
Waar als de shell-optie optnaam is ingeschakeld. Zie de lijst met opties onder de
beschrijving van de -o optie voor de reeks hieronder ingebouwd.
-v vernaam
Waar als de shell-variabele vernaam is ingesteld (heeft een waarde gekregen).
-R vernaam
Waar als de shell-variabele vernaam is ingesteld en is een naamreferentie.
-z snaar
Waar als de lengte van snaar is nul.
snaar
-n snaar
Waar als de lengte van snaar niet nul is.

string1 == string2
string1 = string2
True als de strings gelijk zijn. = moet worden gebruikt met de proef opdracht voor POSIX
conformiteit. Bij gebruik met de [[ commando, dit voert patroonvergelijking uit als
hierboven omschreven (Samenstelling commando's).

string1 != string2
True als de strings niet gelijk zijn.

string1 < string2
waar als string1 sorteert eerder string2 lexicografisch.

string1 > string2
waar als string1 sorteert na string2 lexicografisch.

arg1 OP arg2
OP is een van -vgl, -do, -lt, Ze, - gtof -geven. Deze rekenkundige binaire operatoren
retourneer waar als arg1 is gelijk aan, niet gelijk aan, kleiner dan, kleiner dan of gelijk aan,
groter dan, of groter dan of gelijk aan arg2, Respectievelijk. arg1 en arg2 kan zijn
positieve of negatieve gehele getallen.

EENVOUDIG COMMAND UITBREIDING


Wanneer een eenvoudig commando wordt uitgevoerd, voert de shell de volgende uitbreidingen uit,
opdrachten en omleidingen, van links naar rechts.

1. De woorden die de parser heeft gemarkeerd als variabele toewijzingen (de woorden die voorafgaan aan de
opdrachtnaam) en omleidingen worden opgeslagen voor latere verwerking.

2. De woorden die geen variabele toewijzingen of omleidingen zijn, worden uitgebreid. Indien van toepassing
woorden blijven na expansie, het eerste woord wordt beschouwd als de naam van het commando
en de overige woorden zijn de argumenten.

3. Omleidingen worden uitgevoerd zoals hierboven beschreven onder OMLEIDING.

4. De tekst na de = in elke variabele toewijzing ondergaat tilde-expansie,
parameteruitbreiding, opdrachtvervanging, rekenkundige uitbreiding en verwijdering van aanhalingstekens
voordat ze aan de variabele worden toegewezen.

Als er geen opdrachtnaam resulteert, hebben de variabeletoewijzingen invloed op de huidige shell-omgeving.
Anders worden de variabelen toegevoegd aan de omgeving van de uitgevoerde opdracht en niet
invloed hebben op de huidige shell-omgeving. Als een van de toewijzingen probeert een
waarde toe aan een alleen-lezen variabele, treedt er een fout op en wordt de opdracht afgesloten met een waarde die niet gelijk is aan nul
statuut.

Als er geen opdrachtnaam resulteert, worden omleidingen uitgevoerd, maar dit heeft geen invloed op de huidige
shell-omgeving. Een omleidingsfout zorgt ervoor dat de opdracht wordt afgesloten met een niet-nulstatus.

Als er na het uitbreiden nog een opdrachtnaam over is, gaat de uitvoering verder zoals hieronder beschreven.
Anders wordt de opdracht afgesloten. Als een van de uitbreidingen een opdrachtvervanging bevatte,
de exitstatus van het commando is de exitstatus van de laatste commandovervanging
uitgevoerd. Als er geen opdrachtvervangingen waren, wordt de opdracht afgesloten met de status van
nul.

COMMAND EXECUTIE


Nadat een commando is opgesplitst in woorden, als het resulteert in een eenvoudig commando en een
optionele lijst met argumenten, worden de volgende acties ondernomen.

Als de opdrachtnaam geen schuine strepen bevat, probeert de shell deze te lokaliseren. Als er bestaat
een shell-functie met die naam, wordt die functie aangeroepen zoals hierboven beschreven in FUNCTIES.
Als de naam niet overeenkomt met een functie, zoekt de shell ernaar in de lijst met shells
ingebouwde. Als er een overeenkomst wordt gevonden, wordt die ingebouwde functie aangeroepen.

Als de naam geen shell-functie of ingebouwde functie is en geen schuine strepen bevat, slaan
doorzoekt elk element van de PATH voor een map met daarin een uitvoerbaar bestand
naam. Slaan gebruikt een hashtabel om de volledige padnamen van uitvoerbare bestanden te onthouden (zie hachee
voor SHELL GEBOUWD COMMANDO'S onderstaand). Een volledige doorzoeking van de mappen in PATH is
alleen uitgevoerd als de opdracht niet in de hashtabel wordt gevonden. Als de zoektocht is
mislukt, zoekt de shell naar een gedefinieerde shell-functie met de naam
command_not_found_handle. Als die functie bestaat, wordt deze samen met het origineel aangeroepen
opdracht en de argumenten van de oorspronkelijke opdracht als argumenten, en de uitgang van de functie
status wordt de exitstatus van de shell. Als die functie niet is gedefinieerd, wordt de shell
drukt een foutbericht af en retourneert een afsluitstatus van 127.

Als de zoekopdracht succesvol is, of als de opdrachtnaam een ​​of meer schuine strepen bevat, wordt het
shell voert het genoemde programma uit in een aparte uitvoeringsomgeving. Argument 0 is ingesteld
aan de gegeven naam, en de resterende argumenten aan de opdracht worden aan de argumenten gezet
gegeven, indien van toepassing.

Als deze uitvoering mislukt omdat het bestand geen uitvoerbaar formaat heeft, en het bestand ook niet
een map, wordt aangenomen dat het een schelp script, een bestand met shell-opdrachten. A
subshell wordt voortgebracht om het uit te voeren. Deze subshell initialiseert zichzelf opnieuw, zodat het effect
is alsof er een nieuwe shell is aangeroepen om het script af te handelen, met de uitzondering dat de
locaties van commando's onthouden door de ouder (zie hachee onder SHELL GEBOUWD
COMMANDO'S) worden bewaard door het kind.

Als het programma een bestand is dat begint met #!, specificeert de rest van de eerste regel een
tolk voor het programma. De shell voert de opgegeven tolk uit tijdens het gebruik
systemen die dit uitvoerbare formaat niet zelf verwerken. De argumenten voor de
tolk bestaat uit een enkel optioneel argument dat volgt op de naam van de tolk op de
eerste regel van het programma, gevolgd door de naam van het programma, gevolgd door het commando
eventuele argumenten.

COMMAND EXECUTIE MILIEU


De schaal heeft een uitvoering milieu, dat bestaat uit het volgende:

· open bestanden die bij aanroep door de shell zijn overgenomen, zoals gewijzigd door omleidingen
geleverd aan de exec ingebouwde

· de huidige werkmap zoals ingesteld door cd, pushdof popd, of geërfd door de
schil bij aanroeping

· het masker voor de modus voor het maken van bestanden zoals ingesteld door umasker of geërfd van de ouder van de schaal

· huidige vallen ingesteld door val

· shell-parameters die worden ingesteld door variabele toewijzing of met reeks of geërfd van
de ouder van de schaal in de omgeving

· shell-functies gedefinieerd tijdens de uitvoering of overgenomen van de ouder van de shell
milieu

· opties ingeschakeld bij aanroep (standaard of met opdrachtregelargumenten) of
by reeks

· opties ingeschakeld door winkelt

· shell-aliassen gedefinieerd met alias

· diverse proces-ID's, waaronder die van achtergrondfuncties, de waarde van $$En
waarde van PPID

Wanneer een eenvoudig commando anders dan een ingebouwde of shell-functie moet worden uitgevoerd, is dat het geval
aangeroepen in een afzonderlijke uitvoeringsomgeving die uit het volgende bestaat. Tenzij
anders vermeld, worden de waarden overgenomen van de shell.

· de geopende bestanden van de shell, plus alle wijzigingen en toevoegingen gespecificeerd door
omleidingen naar de opdracht

· de huidige werkmap

· het masker voor de modus voor het maken van bestanden

· shell-variabelen en functies gemarkeerd voor export, samen met variabelen waarvoor geëxporteerd is
het commando, doorgegeven in de omgeving

· vallen die door de shell worden gevangen, worden gereset naar de waarden die zijn geërfd van de shell
parent, en traps die door de shell worden genegeerd, worden genegeerd

Een commando dat in deze aparte omgeving wordt aangeroepen, kan de uitvoering van de shell niet beïnvloeden
milieu.

Opdrachtvervanging, opdrachten gegroepeerd tussen haakjes en asynchrone opdrachten zijn dat wel
aangeroepen in een subshell-omgeving die een duplicaat is van de shell-omgeving, behalve
dat vallen die door de shell worden gevangen, worden gereset naar de waarden die de shell van de shell heeft geërfd
ouder bij aanroep. Ingebouwde opdrachten die worden aangeroepen als onderdeel van een pijplijn zijn dat ook
uitgevoerd in een subshell-omgeving. Wijzigingen in de subshell-omgeving kunnen dat niet
invloed hebben op de uitvoeringsomgeving van de shell.

Subshells die worden voortgebracht om opdrachtvervangingen uit te voeren, nemen de waarde over van de -e optie van
de ouderschil. Wanneer niet binnen posix mode, slaan wist het -e optie in dergelijke subshells.

Als een commando wordt gevolgd door een & en taakbeheer niet actief is, de standaard standaardinvoer
want de opdracht is het lege bestand / Dev / null. Anders erft het aangeroepen commando het
bestandsbeschrijvingen van de aanroepende shell zoals gewijzigd door omleidingen.

MILIEU


Wanneer een programma wordt aangeroepen, krijgt het een reeks tekenreeksen, de milieu. Dit is
een lijst van naam-waarde paren, van de vorm naam=waarde.

De schaal biedt verschillende manieren om de omgeving te manipuleren. Bij aanroeping de schelp
scant zijn eigen omgeving en creëert automatisch een parameter voor elke gevonden naam
markeren voor exporteren naar kindprocessen. Uitgevoerde commando's erven de omgeving. De
exporteren en verklaren -x Met commando's kunnen parameters en functies worden toegevoegd en verwijderd
uit de omgeving. Als de waarde van een parameter in de omgeving wordt gewijzigd, wordt de new
waarde wordt onderdeel van de omgeving en vervangt het oude. De omgeving geërfd door
elk uitgevoerd commando bestaat uit de initiële omgeving van de shell, waarvan de waarden kunnen zijn
aangepast in de schaal, minus eventuele paren verwijderd door de uitgeschakeld commando, plus eventuele toevoegingen via
de exporteren en verklaren -x commando's.

Het milieu voor iedereen simpel commando of functie kan tijdelijk worden uitgebreid met
voorafgegaan door parametertoewijzingen, zoals hierboven beschreven in PARAMETERS. Deze
toewijzingsinstructies zijn alleen van invloed op de omgeving die door die opdracht wordt gezien.

Indien de -k optie is ingesteld (zie de reeks ingebouwde opdracht hieronder), dan allen parameter
toewijzingen worden in de omgeving geplaatst voor een opdracht, niet alleen de opdrachten die eraan voorafgaan
opdracht naam.

. slaan roept een extern commando aan, de variabele _ is ingesteld op de volledige bestandsnaam van het
commando en doorgegeven aan dat commando in zijn omgeving.

EXIT STATUS


De exitstatus van een uitgevoerde opdracht is de waarde die wordt geretourneerd door de wachtend systeemoproep of
gelijkwaardige functie. De uitgangsstatussen liggen echter tussen 0 en 255, zoals hieronder wordt uitgelegd:
de shell kan speciaal waarden boven de 125 gebruiken. Verlaat statussen van ingebouwde shell-ins en
samengestelde commando's zijn ook beperkt tot dit bereik. Onder bepaalde omstandigheden kan de schaal
zal speciale waarden gebruiken om specifieke storingsmodi aan te geven.

Voor de doeleinden van de shell is een commando dat wordt afgesloten met een exitstatus van nul, geslaagd. Een
exit-status van nul duidt op succes. Een afsluitstatus die niet nul is, duidt op een storing. Wanneer een
commando eindigt op een fataal signaal N, slaan gebruikt de waarde van 128+N als de uitgangsstatus.

Als een commando niet wordt gevonden, retourneert het onderliggende proces dat is gemaakt om het uit te voeren de status van
127. Als een opdracht wordt gevonden maar niet kan worden uitgevoerd, is de retourstatus 126.

Als een opdracht mislukt vanwege een fout tijdens uitbreiding of omleiding, is de afsluitstatus
groter dan nul.

Shell ingebouwde commando's retourneren een status van 0 (waar) indien succesvol, en niet-nul (vals) als
er treedt een fout op terwijl ze worden uitgevoerd. Alle ingebouwde apparaten retourneren een afsluitstatus van 2 om aan te geven
onjuist gebruik.

Slaan zelf retourneert de afsluitstatus van de laatst uitgevoerde opdracht, tenzij een syntaxisfout
optreedt, in welk geval het wordt afgesloten met een waarde die niet gelijk is aan nul. Zie ook de afrit ingebouwd commando
hieronder.

SIGNALEN


. slaan is interactief; als er geen valkuilen zijn, negeert het SIGTERM (zodat doden 0
doodt geen interactieve shell), en SIGINT wordt opgevangen en behandeld (zodat de wachten
ingebouwd is onderbreekbaar). In alle gevallen, slaan negeert ZO VEEL. Als taakcontrole in is
effect, slaan negeert AANMELDEN, SIGTTOU en SIGTSTP.

Niet-ingebouwde commando's uitgevoerd door slaan zorg ervoor dat signaalbehandelaars zijn ingesteld op de waarden die zijn geërfd door de
shell van zijn ouder. Wanneer taakbeheer niet actief is, worden asynchrone opdrachten genegeerd
SIGINT en ZO VEEL naast deze overgeërfde handlers. Commando's worden uitgevoerd als gevolg van
opdrachtvervanging negeert de door het toetsenbord gegenereerde taakbesturingssignalen AANMELDEN, SIGTTOU,
en SIGTSTP.

De shell wordt standaard afgesloten bij ontvangst van een ZUCHT. Voor het afsluiten, een interactieve shell
verzendt opnieuw de ZUCHT voor alle taken, actief of gestopt. Gestopte opdrachten worden verzonden VOLGENDE naar
ervoor zorgen dat ze de ontvangen ZUCHT. Om te voorkomen dat de shell het signaal naar a
bepaalde taak, moet deze uit de takentabel worden verwijderd met de verloochenen ingebouwd (zie
SHELL GEBOUWD COMMANDO'S hieronder) of gemarkeerd om niet te ontvangen ZUCHT gebruik verloochenen -h.

Indien de hupexit shell-optie is ingesteld met winkelt, slaan stuurt een ZUCHT naar alle banen
wanneer een interactieve login-shell wordt afgesloten.

If slaan wacht tot een commando is voltooid en ontvangt een signaal waarvoor een trap heeft
is ingesteld, wordt de trap pas uitgevoerd als de opdracht is voltooid. Wanneer slaan is aan het wachten
voor een asynchrone opdracht via de wachten ingebouwd, de ontvangst van een signaal waarvoor a
val is ingesteld, zal ervoor zorgen dat de wachten ingebouwd om onmiddellijk terug te keren met een exit-status
groter dan 128, waarna de trap onmiddellijk wordt uitgevoerd.

JOB CONTROL


Jobomschrijving: onder controle te houden verwijst naar het vermogen om selectief te stoppen (opschorten) de uitvoering van processen
en doorgaan (hervat) hun uitvoering op een later tijdstip. Een gebruiker gebruikt dit meestal
faciliteit via een interactieve interface die gezamenlijk wordt geleverd door de kernel van het besturingssysteem
terminalbestuurder en slaan.

De schaal associeert a baan met elke pijpleiding. Het houdt een tabel bij van momenteel uitgevoerd
banen, die kunnen worden vermeld met de vacatures commando. Wanneer slaan start een taak asynchroon
(in de achtergrond), drukt het een regel af die eruitziet als:

[1] 25647

wat aangeeft dat deze taak taaknummer 1 is en dat de proces-ID van het laatste proces in
de pijplijn die aan deze taak is gekoppeld, is 25647. Alle processen in één pijplijn
zijn lid van dezelfde functie. Slaan gebruikt baan abstractie als basis voor job control.

Om de implementatie van de gebruikersinterface naar opdrachtbeheer te vergemakkelijken, moet de bediening
systeem handhaaft het idee van een actueel terminal groep ID. Leden van dit
procesgroep (processen waarvan de procesgroep-ID gelijk is aan het huidige terminalproces
groeps-ID) ontvangen door het toetsenbord gegenereerde signalen zoals SIGINT. Deze processen worden gezegd
in de voorgrond. Achtergrond processen zijn processen waarvan de procesgroep-ID verschilt
de terminal; dergelijke processen zijn immuun voor door het toetsenbord gegenereerde signalen. Alleen voorgrond
processen mogen lezen van of, als de gebruiker dit opgeeft met stty tostop, schrijven naar
de terminal. Achtergrondprocessen die proberen te lezen van (write to when stty tostop
van kracht is) wordt de terminal verzonden a AANMELDEN (SIGTTOU) signaal door de terminal van de kernel
bestuurder, die, tenzij betrapt, het proces opschort.

Als het besturingssysteem waarop slaan wordt uitgevoerd ondersteunt taakbeheer, slaan bevat
faciliteiten om er gebruik van te maken. Het typen van de opschorten karakter (typisch ^Z, Control-Z) terwijl a
proces wordt uitgevoerd zorgt ervoor dat dat proces wordt gestopt en geeft de besturing terug aan slaan. Typen
de vertraagd opschorten karakter (typisch ^Y, Control-Y) zorgt ervoor dat het proces wordt gestopt
wanneer het probeert invoer van de terminal te lezen en naar de besturing terug te keren slaan. De
De gebruiker kan vervolgens de status van deze taak manipuleren met behulp van de bg opdracht om door te gaan in de
achtergrond, de fg opdracht om het op de voorgrond voort te zetten, of de doden opdracht om te doden
het. EEN ^Z wordt onmiddellijk van kracht en heeft als bijkomend neveneffect dat het een hangende werking heeft
output en typeahead worden weggegooid.

Er zijn een aantal manieren om naar een taak in de shell te verwijzen. Het personage % introduceert een
werk specificatie (taakspec). Baannummer n kan worden aangeduid als %n. Een baan mag ook
waarnaar wordt verwezen met behulp van een voorvoegsel van de naam waarmee het is gestart, of met behulp van een subtekenreeks die verschijnt
in zijn opdrachtregel. Bijvoorbeeld, %ce verwijst naar een gestopte ce functie. Als een voorvoegsel overeenkomt
meer dan één baan, slaan meldt een fout. Gebruik makend van %?ce, aan de andere kant, verwijst naar elke
taak die de tekenreeks bevat ce in zijn opdrachtregel. Als de subtekenreeks met meer dan één overeenkomt
baan, slaan meldt een fout. De symbolen %% en %+ verwijzen naar het begrip van de shell van de
actueel baan, wat de laatste taak is die is gestopt terwijl deze op de voorgrond stond of waarin deze was gestart
de achtergrond. De vorig baan kan worden verwezen met behulp van %-. Als er maar één is
baan, %+ en %- kunnen beide worden gebruikt om naar die taak te verwijzen. In uitvoer met betrekking tot banen (bijv.
de uitvoer van de vacatures opdracht), wordt de huidige taak altijd gemarkeerd met een +En
vorige baan bij A -. Ook een enkel % (zonder bijbehorende functiespecificatie) verwijst naar
de huidige baan.

Door simpelweg een taak een naam te geven, kan deze op de voorgrond worden gebracht: %1 is een synoniem voor ``fg
%1'', waardoor taak 1 van de achtergrond naar de voorgrond komt. Evenzo, ``%1 &'' cv's
taak 1 op de achtergrond, gelijk aan `` bg %1''.

De shell leert onmiddellijk wanneer een taak van status verandert. Normaal gesproken, slaan wacht tot het
staat op het punt een prompt af te drukken voordat wijzigingen in de status van een taak worden gerapporteerd, zodat dit niet gebeurt
elke andere uitvoer onderbreken. Als de -b optie voor de reeks ingebouwde opdracht is ingeschakeld, slaan
meldt dergelijke wijzigingen onmiddellijk. Elke val op SIGCHLD wordt voor elk kind uitgevoerd
uitgangen.

Als een poging om af te sluiten slaan wordt gemaakt terwijl taken zijn gestopt (of, als de controleopdrachten schelp
optie is ingeschakeld met behulp van de winkelt ingebouwd, actief), drukt de shell een waarschuwing af
bericht, en als de controleopdrachten optie is ingeschakeld, worden de taken en hun status weergegeven. De
vacatures commando kan vervolgens worden gebruikt om hun status te inspecteren. Als er een tweede poging tot afrit is
gemaakt zonder een tussenkomend commando, drukt de shell geen andere waarschuwing af, en eventuele
gestopte taken worden beëindigd.

PROMPT


Bij interactief uitvoeren, slaan geeft de primaire prompt weer PS1 wanneer het er klaar voor is
lees een opdracht en de secundaire prompt PS2 wanneer er meer input nodig is om a te voltooien
opdracht. Slaan staat toe dat deze promptstrings worden aangepast door er een aantal in te voegen
backslash-escaped speciale tekens die als volgt worden gedecodeerd:
\a een ASCII-belteken (07)
\d de datum in het formaat "Weekday Month Date" (bijv. "Di May 26")
\D{formaat}
de formaat wordt doorgegeven aan tijd(3) en het resultaat wordt ingevoegd in het
prompttekenreeks; een lege formaat resulteert in een locatiespecifieke tijd
vertegenwoordiging. De beugels zijn vereist
\e een ASCII-escape-teken (033)
\h de hostnaam tot aan de eerste `.'
\H de hostnaam
\j het aantal banen dat momenteel door de shell wordt beheerd
\l de basisnaam van de naam van het terminalapparaat van de shell
\n nieuwe lijn
\r vervoer retour
\s de naam van de shell, de basisnaam van $0 (het gedeelte na de finale
schuine streep)
\t de huidige tijd in 24-uurs formaat UU:MM:SS
\T de huidige tijd in 12-uurs formaat UU:MM:SS
\@ de huidige tijd in 12-uur am/pm formaat
\A de huidige tijd in 24-uurs UU:MM formaat
\u de gebruikersnaam van de huidige gebruiker
\v de versie van slaan (bijv. 2.00)
\V het uitkomen van slaan, versie + patchniveau (bijv. 2.00.0)
\w de huidige werkmap, met $ HOME afgekort met een tilde (gebruikt de
waarde van de PROMPT_DIRTRIM variabel)
\W de basisnaam van de huidige werkmap, met $ HOME afgekort met een
tilde
\! het geschiedenisnummer van deze opdracht
\# het commandonummer van dit commando
\$ als de effectieve UID 0 is, a #, anders een $
\nnn het teken dat overeenkomt met het octale getal nnn
\\ een backslash
\[ beginnen met een reeks niet-afdrukbare tekens, die kunnen worden gebruikt om een
terminal controle volgorde in de prompt
\] een reeks niet-afdrukbare tekens beëindigen

Het commandonummer en het geschiedenisnummer zijn meestal verschillend: het geschiedenisnummer van a
commando is de positie ervan in de geschiedenislijst, die opdrachten kan bevatten die zijn hersteld vanuit de
geschiedenisbestand (zie GESCHIEDENIS hieronder), terwijl het commandonummer de positie in de reeks is
commando's uitgevoerd tijdens de huidige shell-sessie. Nadat de string is gedecodeerd, is het
uitgebreid via parameteruitbreiding, opdrachtvervanging, rekenkundige uitbreiding en aanhalingstekens
verwijdering, afhankelijk van de waarde van de promptvars shell-optie (zie de beschrijving van de
winkelt commando onder SHELL GEBOUWD COMMANDO'S hieronder).

LEES REGEL


Dit is de bibliotheek die leesinvoer afhandelt bij gebruik van een interactieve shell, tenzij de
--geen bewerking optie wordt gegeven bij het aanroepen van de shell. Lijnbewerking wordt ook gebruikt bij het gebruik van de
-e optie voor de dit artikel lezen ingebouwd. Standaard zijn de regelbewerkingsopdrachten vergelijkbaar met die
van Emacs. Er is ook een lijnbewerkingsinterface in vi-stijl beschikbaar. Lijnbewerking kan zijn
op elk moment ingeschakeld met behulp van de -o emacs or -o vi opties voor de reeks ingebouwd (zie SHELL
GEBOUWD COMMANDO'S onderstaand). Om regelbewerking uit te schakelen nadat de shell is uitgevoerd, gebruikt u de +o
emacs or +o vi opties voor de reeks ingebouwd.

Lees regel schrijfwijze
In deze sectie wordt de notatie in Emacs-stijl gebruikt om toetsaanslagen aan te duiden. Bedieningstoetsen zijn
aangeduid met C-sleutelCn betekent bijvoorbeeld Control-N. Evenzo, meta toetsen worden aangeduid met M-sleutel,
dus Mx betekent Meta-X. (Op toetsenborden zonder een meta sleutel, M-x betekent ESC x, dwz druk op de
Escape-toets en vervolgens de x sleutel. Dit maakt ESC de meta voorvoegsel. De combinatie MC-x middel
ESC-controle-xof druk op de Escape-toets en houd vervolgens de Control-toets ingedrukt terwijl u op drukt x
sleutel.)

Leesregelopdrachten kunnen numeriek worden gegeven argumenten, die normaal gesproken fungeren als een herhaalde telling.
Soms is het echter het teken van het argument dat significant is. Het passeren van een
negatief argument voor een commando dat in voorwaartse richting werkt (bijv. kill-lijn) oorzaken
dat commando om in achterwaartse richting te handelen. Commando's waarvan het gedrag met argumenten
hiervan afwijkt staan ​​hieronder vermeld.

Wanneer een opdracht wordt beschreven als doden tekst, wordt de verwijderde tekst bewaard voor een eventuele toekomst
ophalen (rukken). De gedode tekst wordt opgeslagen in een doden ring. Oorzaak van opeenvolgende moorden
de tekst die moet worden verzameld tot één eenheid, die in één keer kan worden uitgetrokken. Commando's welke
dood geen tekst scheid de stukjes tekst op de kill-ring.

Lees regel initialisatie
Readline wordt aangepast door opdrachten in een initialisatiebestand te plaatsen (de invoerrc bestand).
De naam van dit bestand is ontleend aan de waarde van het INGANG variabel. Als die variabele
is uitgeschakeld, is de standaardinstelling ~ / .inputrc. Wanneer een programma dat de readline-bibliotheek gebruikt
wordt opgestart, het initialisatiebestand wordt gelezen en de toetscombinaties en variabelen worden ingesteld.
Er zijn slechts een paar basisconstructies toegestaan ​​in het readline-initialisatiebestand. Blanco
lijnen worden genegeerd. Regels beginnend met een # zijn opmerkingen. Regels die beginnen met een $
voorwaardelijke constructies aangeven. Andere regels geven toetscombinaties en variabele instellingen aan.

De standaard sneltoetsen kunnen worden gewijzigd met een invoerrc bestand. Andere programma's die gebruiken
deze bibliotheek kan zijn eigen commando's en bindingen toevoegen.

Plaatsen bijvoorbeeld

M-Control-u: universeel argument
or
C-Meta-u: universeel argument
in de invoerrc zou MCu het readline-commando laten uitvoeren universeel argument.

De volgende symbolische karakternamen worden herkend: UITWRIJVEN, DE, ESC, LFD, NIEUWE LIJN,
RET, RETURN, SPC, SPACE en TAB.

Naast opdrachtnamen, staat readline toe dat sleutels worden gebonden aan een tekenreeks
geplaatst wanneer de toets wordt ingedrukt (a macro).

Lees regel sleutel bindingen
De syntaxis voor het beheren van sneltoetsen in het invoerrc bestand is eenvoudig. Dat is alles
vereist is de naam van het commando of de tekst van een macro en een toetsenreeks waaraan het
gebonden moeten zijn. De naam kan op twee manieren worden gespecificeerd: als een symbolische sleutelnaam,
mogelijk met meta- or Controle- voorvoegsels, of als een toetsenreeks.

Bij gebruik van het formulier sleutelnaam:functienaam or macro, sleutelnaam is de naam van een gespelde sleutel
uit in het Engels. Bijvoorbeeld:

Control-u: universeel argument
Meta-Rubout: achterwaarts kill-woord
Control-o: "> uitgang"

In het bovenstaande voorbeeld, Cu is gebonden aan de functie universeel argument, M-DEL is gebonden aan
de functie achteruit-kill-woord en Co is verplicht om de macro uit te voeren die aan de rechterkant wordt weergegeven
kant (dat wil zeggen, om de tekst ``> uitvoer'' in de regel in te voegen).

In de tweede vorm, "sleutelvolgorde":functienaam or macro, sleutelsq verschilt sleutelnaam boven in
dat strings die een volledige toetsenreeks aanduiden, kunnen worden gespecificeerd door de reeks te plaatsen
tussen dubbele aanhalingstekens. Sommige toetsontsnappingen in GNU Emacs-stijl kunnen worden gebruikt, zoals hieronder
bijvoorbeeld, maar de symbolische karakternamen worden niet herkend.

"\Cu": universeel argument
"\Cx\Cr": herlees-init-bestand
"\e[11~": "Functietoets 1"

In dit voorbeeld Cu is weer gebonden aan de functie universeel argument. Cx Cr is gebonden
aan de functie herlees-init-bestand en ESC [ 1 1 ~ is gebonden aan het invoegen van de tekst ``Function
Sleutel 1''.

De volledige set ontsnappingssequenties in GNU Emacs-stijl is
\C- controle voorvoegsel
\M- meta-voorvoegsel
\e een ontsnappingskarakter
\\ backslash
\" letterlijk "
\' letterlijk '

Naast de ontsnappingsreeksen in GNU Emacs-stijl is er een tweede reeks backslash-ontsnappingen
beschikbaar:
\a alarm (bel)
\b backspace
\d verwijderen
\f vorm feed
\n nieuwe lijn
\r vervoer retour
\t horizontale tab
\v verticaal tabblad
\nnn het acht-bits teken waarvan de waarde de octale waarde is nnn (één tot drie
cijfers)
\xHH het acht-bits teken waarvan de waarde de hexadecimale waarde is HH (een of twee
hexadecimale cijfers)

Bij het invoeren van de tekst van een macro moeten enkele of dubbele aanhalingstekens worden gebruikt om a aan te geven
macro definitie. Niet-geciteerde tekst wordt verondersteld een functienaam te zijn. In de hoofdtekst van de macro is de
backslash-escapes die hierboven zijn beschreven, zijn uitgebreid. Backslash citeert elk ander teken
in de macrotekst, inclusief " en '.

Slaan staat toe dat de huidige readline-toetsbindingen worden weergegeven of gewijzigd met de binden
ingebouwde opdracht. De bewerkingsmodus kan tijdens interactief gebruik worden gewijzigd door gebruik te maken van de -o
optie voor de reeks ingebouwde opdracht (zie SHELL GEBOUWD COMMANDO'S hieronder).

Lees regel Variabelen
Readline heeft variabelen die kunnen worden gebruikt om het gedrag verder aan te passen. Een variabele mag
worden ingesteld in de invoerrc bestand met een verklaring van het formulier

reeks variabelenaam waarde

Tenzij anders aangegeven, kunnen leesregelvariabelen de waarden aannemen On or af (zonder rekening te houden met
geval). Niet-herkende namen van variabelen worden genegeerd. Wanneer een variabele waarde wordt gelezen, leeg of
null-waarden, "on" (niet hoofdlettergevoelig) en "1" zijn gelijk aan On. Alle andere waarden zijn dat wel
gelijkwaardig af. De variabelen en hun standaardwaarden zijn:

bel-stijl (hoorbaar)
Bepaalt wat er gebeurt als Readline de terminalbel wil laten rinkelen. Indien ingesteld op
geen, readline doet nooit een belletje rinkelen. Indien ingesteld op zichtbaar, gebruikt Readline een zichtbaar
bel als er een beschikbaar is. Indien ingesteld op hoorbaar, probeert readline het
de bel van de terminal.
bind-tty-speciale-tekens (Aan)
Indien ingesteld op On, probeert de leesregel de controletekens te binden die speciaal zijn behandeld door
de terminaldriver van de kernel naar hun readline-equivalenten.
gekleurde statistieken (Uit)
Indien ingesteld op On, geeft readline mogelijke aanvullingen weer met verschillende kleuren
geef hun bestandstype aan. De kleurdefinities zijn ontleend aan de waarde van de
LS_COLORS variabele omgeving.
commentaar-begin (``#'')
De tekenreeks die wordt ingevoegd wanneer de leesregel invoegen-commentaar opdracht wordt uitgevoerd.
Deze opdracht is gebonden aan M-# in emacs-modus en naar # in vi-opdrachtmodus.
voltooiing-negeer-case (Uit)
Indien ingesteld op On, voert readline het matchen en voltooien van bestandsnamen uit in a
hoofdletterongevoelige mode.
voltooiing-voorvoegsel-display-lengte (0)
De lengte in tekens van het gemeenschappelijke voorvoegsel van een lijst met mogelijke aanvullingen
dat zonder wijziging wordt weergegeven. Wanneer ingesteld op een waarde groter dan nul,
gemeenschappelijke voorvoegsels langer dan deze waarde worden vervangen door een weglatingsteken wanneer
mogelijke voltooiingen weergeven.
voltooiingsquery-items (100)
Dit bepaalt wanneer de gebruiker wordt gevraagd naar het bekijken van het mogelijke aantal
aanvullingen gegenereerd door de mogelijke aanvullingen commando. Het kan op elk worden ingesteld
geheel getal groter dan of gelijk aan nul. Als het aantal mogelijke voltooiingen
groter is dan of gelijk is aan de waarde van deze variabele, wordt de gebruiker gevraagd of
of hij ze wil zien; anders worden ze gewoon vermeld op de terminal.
converteren-meta (Aan)
Indien ingesteld op On, converteert readline tekens waarvan de achtste bit is ingesteld naar een ASCII
toetsenreeks door het achtste bit te verwijderen en een escape-teken toe te voegen (in
effect, met behulp van escape als de meta voorvoegsel).
uitschakelen-voltooiing (Uit)
Indien ingesteld op On, zal readline woordaanvulling verhinderen. Voltooiingstekens zullen zijn
in de regel ingevoegd alsof ze waren toegewezen zelf invoegen.
bewerkingsmodus (emacs)
Bepaalt of readline begint met een set sneltoetsen die vergelijkbaar zijn met Emacs or vi.
bewerkingsmodus kan worden ingesteld op een van beide emacs or vi.
echo-control-tekens (Aan)
Indien ingesteld op On, op besturingssystemen die aangeven dat ze dit ondersteunen, echo's readline
een teken dat overeenkomt met een signaal dat door het toetsenbord wordt gegenereerd.
toetsenbord inschakelen (Uit)
Indien ingesteld op On, zal readline proberen het toetsenbord van de toepassing in te schakelen wanneer dit het geval is
genaamd. Sommige systemen hebben dit nodig om de pijltjestoetsen in te schakelen.
inschakelen-meta-sleutel (Aan)
Indien ingesteld op On, zal readline proberen om elke meta-modificatiesleutel op de terminal in te schakelen
beweert te ondersteunen wanneer het wordt aangeroepen. Op veel terminals wordt de metasleutel gebruikt
acht-bits tekens verzenden.
expand-tilde (Uit)
Indien ingesteld op On, tilde-uitbreiding wordt uitgevoerd wanneer de leesregel woordaanvulling probeert.
geschiedenis-preserve-punt (Uit)
Indien ingesteld op On, probeert de geschiedeniscode elk punt op dezelfde locatie te plaatsen
geschiedenisregel opgehaald met voorgeschiedenis or volgende-geschiedenis.
geschiedenis-formaat (0)
Stel het maximale aantal geschiedenisvermeldingen in dat in de geschiedenislijst wordt opgeslagen. Indien ingesteld op
nul, alle bestaande geschiedenisvermeldingen worden verwijderd en er worden geen nieuwe vermeldingen opgeslagen. Als
ingesteld op een waarde kleiner dan nul, is het aantal geschiedenisvermeldingen niet beperkt. Door
standaard is het aantal geschiedenisvermeldingen niet beperkt.
horizontale scroll-modus (Uit)
Indien ingesteld op On, zorgt ervoor dat de leesregel één enkele regel gebruikt voor weergave, waarbij de invoer wordt gescrolld
horizontaal op een enkele schermlijn wanneer deze langer wordt dan de schermbreedte
in plaats van naar een nieuwe regel te gaan.
input-meta (Uit)
Indien ingesteld op On, zal readline XNUMX-bit invoer mogelijk maken (dat wil zeggen, het zal de
hoge bit van de karakters die het leest), ongeacht wat de terminal beweert
kan ondersteunen. De naam meta-vlag is een synoniem voor deze variabele.
issearch-terminators (``C-[C-J'')
De reeks tekens waarmee een incrementele zoekopdracht moet worden beëindigd zonder
vervolgens het karakter uitvoeren als een commando. Als deze variabele niet is geweest
gegeven een waarde, de karakters ESC en CJ zal een incrementele zoekopdracht beëindigen.
toetsenbord (emacs)
Stel de huidige leesregel-toetsenbordkaart in. De set geldige toetsenbordmapnamen is emacs,
emacs-standaard, emacs-meta, emacs-ctlx, Jij, vi-commando en vi-inzet. vi is
gelijkwaardig vi-commando; emacs is gelijk aan emacs-standaard. De standaardwaarde:
is emacs; de waarde van bewerkingsmodus heeft ook invloed op de standaardtoetsenbordindeling.
keyseq-time-out (500)
Specificeert de duur readline zal op een teken wachten bij het lezen van een dubbelzinnige tekst
toetsenreeks (een die een complete toetsreeks kan vormen met behulp van de invoer read so
ver, of kan extra invoer vereisen om een ​​langere toetsenreeks te voltooien). Indien geen invoer
binnen de time-out wordt ontvangen, readline zal de kortere maar volledige sleutel gebruiken
reeks. De waarde wordt opgegeven in milliseconden, dus een waarde van 1000 betekent dat
readline wacht een seconde op extra invoer. Als deze variabele is ingesteld op a
waarde kleiner dan of gelijk aan nul, of aan een niet-numerieke waarde, readline zal wachten
totdat een andere toets wordt ingedrukt om te beslissen welke toetsenreeks moet worden voltooid.
mark-mappen (Aan)
Indien ingesteld op On, wordt aan voltooide mapnamen een schuine streep toegevoegd.
mark-gemodificeerde-lijnen (Uit)
Indien ingesteld op On, geschiedenisregels die zijn gewijzigd, worden weergegeven met een voorafgaande
sterretje (*).
mark-symlinked-mappen (Uit)
Indien ingesteld op On, voltooide namen die symbolische koppelingen naar mappen zijn, hebben een schuine streep
toegevoegd (afhankelijk van de waarde van mark-mappen).
match-verborgen-bestanden (Aan)
Deze variabele, indien ingesteld op On, zorgt ervoor dat de leesregel overeenkomt met bestanden waarvan de naam begint
met een `.' (verborgen bestanden) bij het voltooien van de bestandsnaam. Indien ingesteld op af
leidend `.' moet door de gebruiker worden opgegeven in de in te vullen bestandsnaam.
menu-volledig-weergave-voorvoegsel (Uit)
Indien ingesteld op On, geeft het voltooien van het menu het gemeenschappelijke voorvoegsel weer van de lijst met mogelijke
voltooiingen (die mogelijk leeg zijn) voordat u door de lijst bladert.
output-meta (Uit)
Indien ingesteld op On, zal readline karakters weergeven met de achtste bit direct ingesteld
in plaats van als een ontsnappingsreeks met een voorvoegsel.
pagina-voltooiingen (Aan)
Indien ingesteld op On, gebruikt Readline een intern meer-achtige pager om een ​​scherm vol weer te geven
mogelijke voltooiingen in één keer.
print-voltooiingen-horizontaal (Uit)
Indien ingesteld op On, geeft readline voltooiingen weer met overeenkomsten die horizontaal zijn gesorteerd
alfabetische volgorde, in plaats van naar beneden op het scherm.
alles terugzetten op nieuwe regel (Uit)
Indien ingesteld op On, zal readline alle wijzigingen in geschiedenisregels ongedaan maken alvorens terug te keren naar when
accepteer regel is geëxecuteerd. Standaard kunnen geschiedenisregels worden gewijzigd en behouden
individuele lijsten voor ongedaan maken van oproepen naar readline.
toon-alles-als-dubbelzinnig (Uit)
Dit verandert het standaardgedrag van de voltooiingsfuncties. Indien ingesteld op On, woorden
die meer dan één mogelijke voltooiing hebben, zorgen ervoor dat de overeenkomsten worden vermeld
onmiddellijk in plaats van aan de bel te trekken.
show-all-if-ongewijzigd (Uit)
Dit verandert het standaardgedrag van de voltooiingsfuncties op een vergelijkbare manier
naar toon-alles-als-dubbelzinnig. Indien ingesteld op On, woorden die meer dan één mogelijk hebben
voltooiing zonder enige mogelijke gedeeltelijke voltooiing (de mogelijke voltooiingen niet
een gemeenschappelijk voorvoegsel delen) zorgen ervoor dat de overeenkomsten onmiddellijk worden weergegeven in plaats van
luiden van de bel.
show-modus-in-prompt (Uit)
Indien ingesteld op On, voeg een teken toe aan het begin van de prompt om de bewerking aan te geven
modus: emacs (@), vi-opdracht (:) of vi-invoeging (+).
skip-voltooide-tekst (Uit)
Indien ingesteld op On, verandert dit het standaard voltooiingsgedrag bij het invoegen van een single
passen in de lijn. Het is alleen actief als u halverwege een voltooiing uitvoert
een woord. Indien ingeschakeld, voegt Readline geen tekens in vanaf de voltooiing ervan
match tekens na punt in het woord dat wordt voltooid, dus delen van het woord
achter de cursor worden niet gedupliceerd.
zichtbare statistieken (Uit)
Indien ingesteld op On, een teken dat het bestandstype aangeeft zoals gerapporteerd door staat(2) is toegevoegd
aan de bestandsnaam bij het vermelden van mogelijke aanvullingen.

Lees regel Voorwaardelijk Constructen
Readline implementeert een faciliteit die qua geest vergelijkbaar is met de voorwaardelijke compilatiefuncties
van de C-preprocessor waarmee sneltoetsen en variabele instellingen kunnen worden uitgevoerd als
het resultaat van testen. Er worden vier parserrichtlijnen gebruikt.

$ als De $ als construct maakt het mogelijk om bindingen te maken op basis van de bewerkingsmodus, de
terminal die wordt gebruikt, of de toepassing die readline gebruikt. De tekst van de toets
strekt zich uit tot het einde van de regel; Er zijn geen tekens nodig om het te isoleren.

mode De modus= vorm van de $ als richtlijn wordt gebruikt om te testen of readline binnen is
emacs of vi-modus. Deze kan gebruikt worden in combinatie met de reeks toetsenbord
opdracht, bijvoorbeeld om bindingen in te stellen in de emacs-standaard en emacs-ctlx
keymaps alleen als readline begint in emacs-modus.

termijn De termijn= formulier kan worden gebruikt om terminalspecifieke sneltoetsen op te nemen,
misschien om de toetsreeksen te binden die worden uitgevoerd door de functietoetsen van de terminal.
Het woord aan de rechterkant van de = wordt getoetst aan de beide volledige naam van
de terminal en het gedeelte van de terminalnaam vóór de eerste -. Deze
toestaat zon beide matchen zon en zon-cmdBijvoorbeeld.

toepassing
De toepassing construct wordt gebruikt om toepassingsspecifieke instellingen op te nemen.
Elk programma dat de readline-bibliotheek gebruikt, stelt de toepassing naamEn een
initialisatiebestand kan testen op een bepaalde waarde. Dit zou kunnen worden gebruikt
toetsreeksen binden aan functies die nuttig zijn voor een specifiek programma. Voor
bijvoorbeeld, voegt de volgende opdracht een toetsenreeks toe die de huidige
of vorig woord in slaan:

$ als Slaan
# Citeer het huidige of vorige woord
"\C-xq": "\eb\"\ef\""
$eindif

$eindif Deze opdracht, zoals te zien in het vorige voorbeeld, beëindigt een $ als opdracht.

$anders Commando's in deze tak van de $ als richtlijn worden uitgevoerd als de test mislukt.

$ inclusief
Deze richtlijn neemt een enkele bestandsnaam als argument en leest commando's en
bindingen uit dat bestand. De volgende richtlijn zou bijvoorbeeld luiden
/etc/invoerrc:

$ inclusief /etc/invoerrc

Zoeken
Readline biedt commando's voor het doorzoeken van de commandogeschiedenis (zie GESCHIEDENIS hieronder)
voor regels die een opgegeven tekenreeks bevatten. Er zijn twee zoekmodi: incrementele en niet-
incrementele.

Incrementele zoekopdrachten beginnen voordat de gebruiker klaar is met het typen van de zoekreeks. Zoals elke
karakter van de zoekreeks wordt getypt, geeft readline het volgende item uit de geschiedenis weer
overeenkomen met de tekenreeks die tot nu toe is getypt. Voor een incrementele zoekopdracht zijn slechts evenveel tekens nodig
zo nodig om het gewenste geschiedenisitem te vinden. De karakters aanwezig in de waarde van de
issearch-terminators variabele worden gebruikt om een ​​incrementele zoekopdracht te beëindigen. Als dat
aan de variabele geen waarde is toegewezen, zullen de Escape- en Control-J-tekens eindigen
een incrementele zoektocht. Control-G breekt een incrementele zoekopdracht af en herstelt het
originele lijn. Wanneer de zoekopdracht wordt beëindigd, wordt het geschiedenisitem met de zoekopdracht weergegeven
tekenreeks wordt de huidige regel.

Typ Control-S of Control-R as om andere overeenkomende vermeldingen in de geschiedenislijst te vinden
gepast. Hiermee wordt achteruit of vooruit in de geschiedenis gezocht naar het volgende item
die overeenkomt met de tot nu toe getypte zoekreeks. Elke andere toetsenreeks die aan een leesregel is gebonden
commando beëindigt de zoekopdracht en voert dat commando uit. Bijvoorbeeld, een nieuwe lijn wil
beëindig de zoekopdracht en accepteer de regel, waarbij u de opdracht uit de geschiedenis uitvoert
lijst.

Readline onthoudt de laatste incrementele zoekreeks. Als er twee Control-R's worden getypt
zonder enige tussenliggende tekens die een nieuwe zoekreeks definiëren, elke herinnerde zoekopdracht
snaar wordt gebruikt.

Niet-incrementele zoekopdrachten lezen de volledige zoekreeks voordat ze beginnen te zoeken
bijpassende geschiedenislijnen. De zoekreeks kan door de gebruiker worden getypt of deel uitmaken van de
inhoud van de huidige regel.

Lees regel commando namen
Het volgende is een lijst met de namen van de commando's en de standaard toetscombinaties
waaraan ze gebonden zijn. Commandonamen zonder bijbehorende toetsenreeks zijn ongebonden door
standaard. In de volgende beschrijvingen, punt verwijst naar de huidige cursorpositie, en
Mark verwijst naar een cursorpositie die is opgeslagen door de set-markering commando. De tekst tussen de
punt en merkteken wordt het regio.

commando's For bewegend
begin-van-regel (Ca)
Ga naar het begin van de huidige regel.
einde van de lijn (Ce)
Ga naar het einde van de regel.
vooruit-char (Zie)
Ga een personage vooruit.
achteruit-char (Cb)
Ga een personage terug.
vooruit-woord (MF)
Ga vooruit naar het einde van het volgende woord. Woorden zijn samengesteld uit alfanumerieke tekens
tekens (letters en cijfers).
achterlijk woord (MB)
Ga terug naar het begin van het huidige of vorige woord. Woorden zijn samengesteld uit
alfanumerieke tekens (letters en cijfers).
shell-forward-woord
Ga vooruit naar het einde van het volgende woord. Woorden worden gescheiden door een niet tussen aanhalingstekens staande shell
metakarakters.
shell-achteruit-woord
Ga terug naar het begin van het huidige of vorige woord. Woorden worden begrensd door
niet-geciteerde shell-metatekens.
leeg scherm (Cl)
Wis het scherm en laat de huidige regel bovenaan het scherm staan. Met een
argument, vernieuwt u de huidige regel zonder het scherm leeg te maken.
herteken-huidige-lijn
Ververs de huidige regel.

commando's For manipuleren de Geschiedenis
accepteer regel (Nieuwe lijn, Opbrengst)
Accepteer de regel, ongeacht waar de cursor zich bevindt. Als deze regel niet leeg is, voeg dan toe
het naar de geschiedenislijst volgens de staat van de HISTCONTROLE variabel. Als de
regel een gewijzigde historieregel is, herstel dan de historieregel naar het origineel
staat.
voorgeschiedenis (CP)
Haal de vorige opdracht op uit de geschiedenislijst en ga terug in de lijst.
volgende-geschiedenis (CN)
Haal de volgende opdracht op uit de geschiedenislijst en ga vooruit in de lijst.
begin van de geschiedenis (M-<)
Ga naar de eerste regel in de geschiedenis.
einde van de geschiedenis (M->)
Ga naar het einde van de invoergeschiedenis, dwz de regel die momenteel wordt ingevoerd.
omgekeerde zoekgeschiedenis (Cr)
Zoek achteruit, beginnend bij de huidige regel en 'omhoog' door de geschiedenis als
nodig. Dit is een incrementele zoekopdracht.
vooruit-zoekgeschiedenis (Cs)
Vooruit zoeken vanaf de huidige regel en `omlaag' door de geschiedenis gaan
als nodig. Dit is een incrementele zoekopdracht.
niet-incrementele omgekeerde zoekgeschiedenis (MP)
Zoek achteruit door de geschiedenis vanaf de huidige regel met behulp van een niet-
incrementeel zoeken naar een tekenreeks die door de gebruiker is opgegeven.
niet-incrementele voorwaartse zoekgeschiedenis (Mn)
Zoek vooruit door de geschiedenis met behulp van een niet-incrementele zoekopdracht naar een tekenreeks
geleverd door de gebruiker.
geschiedenis-zoeken-vooruit
Zoek vooruit door de geschiedenis naar de tekenreeks tussen het begin
van de huidige lijn en het punt. Dit is een niet-incrementele zoekopdracht.
geschiedenis-zoeken-achteruit
Zoek achteruit door de geschiedenis naar de tekenreeks tussen het begin
van de huidige lijn en het punt. Dit is een niet-incrementele zoekopdracht.
yank-nth-arg (MCy)
Voeg het eerste argument in bij het vorige commando (meestal het tweede woord in het
vorige regel) op punt. Met een argument n, steek de ne woord van de vorige
commando (de woorden in het vorige commando beginnen met woord 0). Een negatief argument
voegt de ne woord vanaf het einde van het vorige commando. Eenmaal de argumentatie n is
berekend, wordt het argument geëxtraheerd alsof de "!n"geschiedenis uitbreiding was geweest
gespecificeerd.
ruk-laatste-arg (M-., M-_)
Voeg het laatste argument in bij het vorige commando (het laatste woord van het vorige
geschiedenis invoer). Gedraag je met een numeriek argument precies zoals yank-nth-arg.
Opeenvolgende oproepen naar ruk-laatste-arg ga terug door de geschiedenislijst en voeg de
laatste woord (of het woord gespecificeerd door het argument voor de eerste aanroep) van elke regel in
draai. Elk numeriek argument dat aan deze opeenvolgende aanroepen wordt geleverd, bepaalt de
richting om door de geschiedenis te bewegen. Een negatief argument verandert de richting
door de geschiedenis (terug of vooruit). Er wordt gebruik gemaakt van de historische uitbreidingsfaciliteiten
om het laatste woord te extraheren, alsof de geschiedenisuitbreiding "!$" was opgegeven.
shell-uitbreiden-lijn (MCe)
Breid de lijn uit zoals de shell doet. Dit voert alias- en geschiedenisuitbreiding uit als
evenals alle shell-woorduitbreidingen. Zien GESCHIEDENIS UITBREIDING hieronder voor een
beschrijving van de uitbreiding van de geschiedenis.
geschiedenis-uitbreiden-lijn (M-^)
Voer een geschiedenisuitbreiding uit op de huidige regel. Zien GESCHIEDENIS UITBREIDING hieronder voor een
beschrijving van de uitbreiding van de geschiedenis.
magische ruimte
Voer geschiedenisuitbreiding uit op de huidige regel en voeg een spatie in. Zien GESCHIEDENIS
UITBREIDING hieronder voor een beschrijving van de uitbreiding van de geschiedenis.
alias-uitbreiden-lijn
Voer aliasuitbreiding uit op de huidige regel. Zien ALIASES hierboven voor een beschrijving
van aliasuitbreiding.
geschiedenis-en-alias-lijn uitbreiden
Voer geschiedenis- en aliasuitbreiding uit op de huidige regel.
insert-laatste-argument (M-., M-_)
Een synoniem voor ruk-laatste-arg.
opereren-en-krijg-volgende (Co)
Accepteer de huidige regel voor uitvoering en haal de volgende regel op ten opzichte van het
huidige regel uit de geschiedenis voor bewerking. Elk argument wordt genegeerd.
commando bewerken en uitvoeren (CxC-e)
Roep een editor aan op de huidige opdrachtregel en voer het resultaat uit als shell
commando's. Slaan probeert een beroep te doen $VISUEEL, $ EDITOR en emacs als redacteur, in
die bestelling.

commando's For De wereld Tekst
einde-van-bestand (Meestal CD)
Het teken dat het einde van het bestand aangeeft, bijvoorbeeld ingesteld door ``stty''. Als dit
karakter wordt gelezen wanneer er geen karakters op de regel staan, en punt is op de
begin van de regel, interpreteert Readline het als het einde van de invoer en keert terug EOF.
verwijder-char (CD)
Verwijder het teken op punt. Als deze functie gebonden is aan hetzelfde teken als
de tty EOF karakter, als CD gewoonlijk is, zie hierboven voor de effecten.
achterwaarts verwijderen-char (Uitwrijven)
Verwijder het teken achter de cursor. Wanneer u een numeriek argument krijgt, slaat u het bestand op
verwijderde tekst op de kill-ring.
vooruit-achteruit-verwijder-char
Verwijder het teken onder de cursor, tenzij de cursor aan het einde van de regel staat,
in dat geval wordt het teken achter de cursor verwijderd.
geciteerd-insert (Cq, CV)
Voeg het volgende getypte teken letterlijk toe aan de regel. Zo invoegen
karakters zoals CqBijvoorbeeld.
tabblad invoegen (CV TAB)
Voeg een tabteken in.
zelf invoegen (een, b, A, 1, !, ...)
Voeg het getypte teken in.
transponeren-chars (Ct)
Sleep het personage vóór het punt naar voren over het personage op het punt en beweeg het punt
ook naar voren. Als het punt zich aan het einde van de lijn bevindt, transponeert dit de twee
tekens vóór punt. Negatieve argumenten hebben geen effect.
transponeer-woorden (Mt)
Sleep het woord voor punt voorbij het woord na punt en verplaats de punt over dat woord
ook. Als het punt aan het einde van de regel staat, transponeert dit de laatste twee woorden op
de lijn.
upcase-woord (mu)
Het huidige (of volgende) woord in hoofdletters. Met een ontkennend argument, hoofdletter de
vorige woord, maar verplaats het punt niet.
downcase-woord (Ml)
Het huidige (of volgende) woord in kleine letters zetten. Bij een negatief argument, kleine letter de
vorige woord, maar verplaats het punt niet.
hoofdletterwoord (Mc)
Gebruik een hoofdletter voor het huidige (of volgende) woord. Met een negatief argument, kapitaliseren
het vorige woord, maar verplaats de punt niet.
overschrijven-modus
Schakel de overschrijfmodus in. Schakelt met een expliciet positief numeriek argument over naar
overschrijven modus. Schakelt bij een expliciet niet-positief numeriek argument over op invoegen
modus. Deze opdracht is alleen van invloed op emacs mode; vi modus overschrijft anders.
Elke oproep aan Lees regel() begint in de invoegmodus. In de overschrijfmodus zijn tekens gebonden
naar zelf invoegen vervang de tekst op het punt in plaats van de tekst naar rechts te duwen.
Karakters gebonden aan achterwaarts verwijderen-char vervang het teken vóór punt door a
ruimte. Deze opdracht is standaard ongebonden.

Killing en rukken
kill-lijn (Ck)
Dood de tekst van het punt tot het einde van de regel.
achterwaartse kill-lijn (Cx Uitwrijven)
Dood achteruit naar het begin van de lijn.
unix-regel-verwijderen (Cu)
Dood achteruit van punt naar het begin van de lijn. De gedode tekst wordt opgeslagen
de moordring.
kill-hele-lijn
Dood alle karakters op de huidige regel, ongeacht waar het punt is.
kill-woord (MD)
Dood vanaf het punt tot het einde van het huidige woord, of tussen woorden, tot het einde van
het volgende woord. De woordgrenzen zijn dezelfde als die gebruikt door vooruit-woord.
achteruit-kill-woord (M-Rubout)
Dood het woord achter punt. De woordgrenzen zijn dezelfde als die gebruikt door
achterlijk woord.
shell-kill-woord (MD)
Dood vanaf het punt tot het einde van het huidige woord, of tussen woorden, tot het einde van
het volgende woord. De woordgrenzen zijn dezelfde als die gebruikt door shell-forward-woord.
shell-backward-kill-woord (M-Rubout)
Dood het woord achter punt. De woordgrenzen zijn dezelfde als die gebruikt door
shell-achteruit-woord.
unix-woord-rubout (Cw)
Dood het woord achter punt en gebruik witruimte als woordgrens. De vermoorde tekst
wordt opgeslagen op de kill-ring.
unix-bestandsnaam-rubout
Dood het woord achter punt, gebruik witruimte en het schuine streep-teken als het woord
grenzen. De gedode tekst wordt opgeslagen op de kill-ring.
verwijder-horizontale-ruimte (M-\)
Verwijder alle spaties en tabs rond punt.
kill-regio
Dood de tekst in de huidige regio.
kopieer-regio-als-kill
Kopieer de tekst in het gebied naar de kill-buffer.
kopieer-achteruit-woord
Kopieer het woord voor punt naar de kill-buffer. De woordgrenzen zijn hetzelfde als
achterlijk woord.
kopieer-vooruit-woord
Kopieer het volgende punt naar de kill-buffer. De woordgrenzen zijn hetzelfde
as vooruit-woord.
rukken (Cy)
Trek de bovenkant van de kill-ring in de buffer op punt.
yank-pop (Mijn)
Draai de kill-ring en ruk aan de nieuwe top. Werkt alleen als volgt rukken or yank-pop.

Numerieke argumenten
cijfer-argument (M-0, M-1, ..., M--)
Voeg dit cijfer toe aan het argument dat zich al aan het verzamelen is, of begin een nieuw argument. M--
begint een negatief argument.
universeel argument
Dit is een andere manier om een ​​argument te specificeren. Als dit commando wordt gevolgd door een of
meer cijfers, eventueel met een leidend minteken, die cijfers definiëren de
argument. Als het commando wordt gevolgd door cijfers, wordt het uitvoeren universeel argument weer
beëindigt het numerieke argument, maar wordt verder genegeerd. Als een speciaal geval, als dit
commando wordt onmiddellijk gevolgd door een teken dat geen cijfer of min is
teken, wordt het aantal argumenten voor de volgende opdracht vermenigvuldigd met vier. Het betoog
count is aanvankelijk één, dus als u deze functie de eerste keer uitvoert, wordt het
het argument telt vier, een tweede keer telt het argument zestien, enzovoort.

Voltooien
compleet (TAB)
Probeer de tekst vóór het punt af te ronden. Slaan pogingen voltooiing
de tekst behandelen als een variabele (als de tekst begint met $), gebruikersnaam (als de text
begint met ~), hostnaam (als de tekst begint met @), of opdracht (inclusief aliassen
en functies) beurtelings. Als geen van deze een overeenkomst oplevert, is bestandsnaamaanvulling
geprobeerd.
mogelijke aanvullingen (M-?)
Maak een lijst van de mogelijke aanvullingen van de tekst vóór punt.
insert-aanvullingen (M-*)
Voeg alle aanvullingen van de tekst in vóór het punt dat zou zijn gegenereerd door
mogelijke aanvullingen.
menu-compleet
Soortgelijke compleet, maar vervangt het aan te vullen woord door een enkele match from
de lijst met mogelijke voltooiingen. Herhaalde uitvoering van menu-compleet stappen
door de lijst met mogelijke voltooiingen, waarbij elke match om de beurt wordt ingevoegd. Aan het einde
van de lijst met opleveringen wordt er gebeld (afhankelijk van de instelling van bel-stijl)
en de originele tekst wordt hersteld. Een betoog van n beweegt n posities naar voren in
de lijst met wedstrijden; een negatief argument kan worden gebruikt om achteruit te gaan door de
lijst. Deze opdracht is bedoeld om aan te worden gebonden TAB, maar is standaard niet-gebonden.
menu-voltooid-achteruit
Identiek aan menu-compleet, maar gaat achteruit door de lijst met mogelijke opties
voltooiingen, alsof menu-compleet kreeg een negatief argument. Deze opdracht
is standaard ongebonden.
verwijder-char-of-lijst
Verwijdert het teken onder de cursor als het niet aan het begin of einde van de regel staat
(graag willen verwijder-char). Als het aan het einde van de regel staat, gedraagt ​​het zich hetzelfde als
mogelijke aanvullingen. Deze opdracht is standaard ongebonden.
volledige bestandsnaam (M-/)
Probeer de bestandsnaam aan te vullen op de tekst vóór punt.
mogelijke-bestandsnaam-voltooiingen (Cx /)
Maak een lijst van de mogelijke aanvullingen van de tekst vóór het punt en behandel deze als een bestandsnaam.
volledige gebruikersnaam (M-~)
Probeer de tekst vóór het punt af te ronden en behandel deze als een gebruikersnaam.
mogelijke-gebruikersnaam-aanvullingen (Cx ~)
Maak een lijst van de mogelijke aanvullingen van de tekst vóór het punt en behandel deze als een gebruikersnaam.
compleet-variabele (M-$)
Probeer de tekst vóór het punt te voltooien en behandel deze als een shell-variabele.
mogelijke-variabele-aanvullingen (Cx $)
Maak een lijst van de mogelijke aanvullingen van de tekst vóór het punt en behandel deze als een shell
variabel.
complete-hostnaam (M-@)
Probeer de tekst vóór punt aan te vullen en behandel deze als een hostnaam.
mogelijke-hostnaam-aanvullingen (Cx @)
Maak een lijst van de mogelijke aanvullingen van de tekst vóór het punt en behandel deze als een hostnaam.
compleet-commando (M-!)
Probeer de tekst vóór het punt af te ronden en behandel deze als een opdrachtnaam.
Commando-voltooiing probeert de tekst te matchen met aliassen, gereserveerde woorden,
shell-functies, shell-ingebouwde functies en ten slotte uitvoerbare bestandsnamen, in die volgorde.
mogelijke-commando-voltooiingen (Cx !)
Maak een lijst van de mogelijke aanvullingen van de tekst vóór het punt en behandel deze als een opdracht
naam.
dynamische-volledige-geschiedenis (M-TAB)
Probeer de tekst vóór het punt af te ronden, waarbij u de tekst vergelijkt met regels uit
de geschiedenislijst voor mogelijke voltooiingsovereenkomsten.
dabbrev-uitbreiden
Probeer het menu te voltooien op de tekst vóór het punt, waarbij u de tekst vergelijkt met regels
uit de geschiedenislijst voor mogelijke voltooiingswedstrijden.
compleet-in-bretels (M-{)
Voltooi de bestandsnaam en voeg de bijgevoegde lijst met mogelijke aanvullingen in
tussen accolades zodat de lijst beschikbaar is voor de shell (zie Beugel Uitbreiding bovenstaande).

Toetsenbord Macro's
start-kbd-macro (Cx ()
Begin met het opslaan van de getypte tekens in de huidige toetsenbordmacro.
eind-kbd-macro (Cx ))
Stop met het opslaan van de getypte tekens in de huidige toetsenbordmacro en sla de
definitie.
oproep-laatste-kbd-macro (Cx e)
Voer de laatst gedefinieerde toetsenbordmacro opnieuw uit door de tekens in de macro aan te maken
verschijnen alsof ze op het toetsenbord zijn getypt.
print-laatste-kbd-macro ()
Druk de laatst gedefinieerde toetsenbordmacro af in een formaat dat geschikt is voor het invoerrc bestand.

Diversen
herlees-init-bestand (Cx cr)
Lees de inhoud van de invoerrc bestand en neem eventuele bindingen of variabelen op
daar gevonden opdrachten.
afbreken (Cg)
Breek het huidige bewerkingscommando af en druk op de bel van de terminal (onder voorbehoud van de
instelling van bel-stijl).
doe-hoofdletters-versie (Ma, MB, M-x, ...)
Als het meta-karakter x kleine letters is, voert u de opdracht uit die is gekoppeld aan de
bijbehorende hoofdletter.
voorvoegsel-meta (ESC)
Metafy het volgende getypte teken. ESC f is gelijk aan Meta-f.
ongedaan maken (C-_, Cx Cu)
Incrementeel ongedaan maken, afzonderlijk onthouden voor elke regel.
terugkeer-lijn (Dhr)
Maak alle wijzigingen op deze regel ongedaan. Dit is hetzelfde als het uitvoeren van de ongedaan maken commando genoeg
keer om de lijn terug te brengen naar de oorspronkelijke staat.
tilde-uitbreiden (M-&)
Voer tilde-expansie uit op het huidige woord.
set-markering (C-@, M- )
Zet de markering op het punt. Als een numeriek argument wordt opgegeven, wordt de markering ingesteld op
die positie.
uitwisseling-punt-en-mark (Cx Cx)
Verwissel het punt met de markering. De huidige cursorpositie wordt ingesteld op de opgeslagen
positie en de oude cursorpositie wordt als markering opgeslagen.
karakter-zoeken (C-])
Een teken wordt gelezen en het punt wordt verplaatst naar de volgende keer dat dat teken voorkomt. A
zoeken naar negatieve tellingen voor eerdere gebeurtenissen.
karakter-zoeken-achteruit (MC-])
Een teken wordt gelezen en het punt wordt verplaatst naar het vorige exemplaar ervan
karakter. Een negatieve telling zoekt naar volgende gebeurtenissen.
skip-csi-reeks
Lees voldoende tekens om een ​​reeks met meerdere toetsen te gebruiken, zoals die waarvoor is gedefinieerd
toetsen zoals Home en End. Dergelijke sequenties beginnen met een Control Sequence Indicator
(CSI), meestal ESC-[. Als deze reeks is gebonden aan "\[", produceren sleutels dergelijke
sequenties hebben geen effect tenzij expliciet gebonden aan een leesregelcommando,
in plaats van losse tekens in de bewerkingsbuffer in te voegen. Dit is niet gebonden aan
standaard, maar meestal gebonden aan ESC-[.
invoegen-commentaar (M-#)
Zonder een numeriek argument, de waarde van de leesregel commentaar-begin variabele is
ingevoegd aan het begin van de huidige regel. Als er een numeriek argument wordt opgegeven,
dit commando werkt als een schakelaar: als de tekens aan het begin van de regel dat doen
komen niet overeen met de waarde van commentaar-begin, wordt de waarde ingevoegd, anders wordt de
tekens in commentaar-begin worden vanaf het begin van de regel verwijderd. In beide
In dat geval wordt de regel geaccepteerd alsof er een nieuwe regel is getypt. De standaardwaarde van
commentaar-begin zorgt ervoor dat dit commando van de huidige regel een shell-opmerking maakt. Als een
numeriek argument zorgt ervoor dat het commentaarteken wordt verwijderd, de regel zal zijn
uitgevoerd door de schaal.
glob-compleet-woord (Mg)
Het woord voor het punt wordt behandeld als een patroon voor padnaamuitbreiding, met een
asterisk impliciet toegevoegd. Dit patroon wordt gebruikt om een ​​lijst met overeenkomsten te genereren
bestandsnamen voor mogelijke aanvullingen.
glob-uitbreiden-woord (Cx *)
Het woord voor punt wordt behandeld als een patroon voor padnaamuitbreiding en de lijst
van overeenkomende bestandsnamen wordt ingevoegd, ter vervanging van het woord. Als een numeriek argument is
geleverd, wordt er een sterretje toegevoegd voor uitbreiding van de padnaam.
global-lijst-uitbreidingen (Cx g)
De lijst met uitbreidingen die zouden zijn gegenereerd door glob-uitbreiden-woord is
weergegeven en de lijn wordt opnieuw getekend. Als een numeriek argument wordt opgegeven, een asterisk
wordt toegevoegd vóór de uitbreiding van de padnaam.
dump-functies
Druk alle functies en hun sneltoetsen af ​​naar de uitvoerstroom van de leesregel.
Als er een numeriek argument wordt opgegeven, wordt de uitvoer zo opgemaakt dat deze
kan onderdeel worden van een invoerrc bestand.
dump-variabelen
Print alle instelbare readline-variabelen en hun waarden naar de readline
uitgangsstroom. Als een numeriek argument wordt opgegeven, wordt de uitvoer zo opgemaakt
een manier waarop het onderdeel kan worden van een invoerrc bestand.
dump-macro's
Druk alle leesregelsleutelreeksen af ​​die zijn gebonden aan macro's en de tekenreeksen die ze bevatten
uitvoer. Als een numeriek argument wordt opgegeven, wordt de uitvoer op een dergelijke manier opgemaakt
dat het onderdeel kan worden van een invoerrc bestand.
display-shell-versie (Cx CV)
Geef versie-informatie weer over het huidige exemplaar van slaan.

Programmeerbare Voltooiing
Wanneer wordt geprobeerd een woord aan te vullen voor een argument voor een commando waarvoor een voltooiing
specificatie (een compspec) is gedefinieerd met de compleet ingebouwd (zie SHELL GEBOUWD
COMMANDO'S hieronder), worden de programmeerbare voltooiingsfaciliteiten aangeroepen.

Eerst wordt de opdrachtnaam geïdentificeerd. Als het commandowoord de lege string is
(poging tot voltooiing aan het begin van een lege regel), elke compspec gedefinieerd met de -E
optie om compleet is gebruikt. Als er een compspec is gedefinieerd voor die opdracht, wordt het compspec
wordt gebruikt om de lijst met mogelijke aanvullingen voor het woord te genereren. Als het commandowoord is
een volledige padnaam, wordt eerst een compspec voor de volledige padnaam gezocht. Indien geen compspec
wordt gevonden voor de volledige padnaam, wordt geprobeerd een compspec voor het gedeelte te vinden
na de laatste slag. Als die zoekopdrachten niet resulteren in een compspec, kan any compspec
gedefinieerd met de -D optie om compleet wordt als standaard gebruikt.

Zodra een compspec is gevonden, wordt deze gebruikt om de lijst met overeenkomende woorden te genereren. Als een
compspec wordt niet gevonden, de standaardinstelling slaan voltooiing zoals hierboven beschreven onder Voltooien is
uitgevoerd.

Eerst worden de acties gebruikt die door de compspec zijn gespecificeerd. Alleen overeenkomsten die worden voorafgegaan door
het woord dat wordt voltooid, wordt geretourneerd. Wanneer de -f or -d optie wordt gebruikt voor bestandsnaam of
mapnaam voltooiing, de shell-variabele FIGNEER wordt gebruikt om de overeenkomsten te filteren.

Alle voltooiingen gespecificeerd door een padnaamuitbreidingspatroon naar de -G optie worden gegenereerd
volgende. De woorden die door het patroon worden gegenereerd, hoeven niet overeen te komen met het woord dat wordt voltooid. De
GLOBIGNORE shell-variabele wordt niet gebruikt om de overeenkomsten te filteren, maar de FIGNEER variabele is
gebruikt.

Vervolgens wordt de tekenreeks opgegeven als het argument voor de -W optie wordt overwogen. Het touwtje is
eerste splitsing met behulp van de tekens in de IFS speciale variabele als scheidingstekens. Shell citeren
wordt vereerd. Elk woord wordt vervolgens uitgebreid met accolade-uitbreiding, tilde-uitbreiding, parameter
en variabele expansie, opdrachtvervanging en rekenkundige expansie, zoals hierboven beschreven
voor UITBREIDING. De resultaten worden gesplitst volgens de hierboven beschreven regels Woord
Splitsen. De resultaten van de uitbreiding worden vergeleken met het woord wezen
voltooid, en de overeenkomende woorden worden de mogelijke aanvullingen.

Nadat deze overeenkomsten zijn gegenereerd, wordt elke shell-functie of opdracht gespecificeerd met de
-F en -C opties wordt aangeroepen. Wanneer de opdracht of functie wordt aangeroepen, wordt de COMPLETEN,
COMP_POINT, COMP_KEY en COMP_TYPE Aan variabelen worden waarden toegewezen zoals hierboven beschreven
Shell Variabelen. Als een shell-functie wordt aangeroepen, wordt de COMP_WORDS en COMP_CWORD
variabelen zijn ook ingesteld. Wanneer de functie of opdracht wordt aangeroepen, wordt het eerste argument ($1)
is de naam van het commando waarvan de argumenten worden aangevuld, het tweede argument ($2)
is het woord dat wordt voltooid, en het derde argument ($3) is het woord dat aan het woord voorafgaat
wordt voltooid op de huidige opdrachtregel. Geen filtering van de gegenereerde voltooiingen
tegen het voltooide woord wordt uitgevoerd; de functie of opdracht is voltooid
vrijheid bij het genereren van de matches.

Elke functie gespecificeerd met -F wordt als eerste aangeroepen. De functie kan elk van de shells gebruiken
faciliteiten, waaronder de compgen ingebouwd, hieronder beschreven, om de overeenkomsten te genereren. Het
moet de mogelijke aanvullingen in het VOLLEDIG arrayvariabele, één per arrayelement.

Vervolgens wordt elke opdracht opgegeven met de -C optie wordt aangeroepen in een omgeving die gelijkwaardig is aan
opdrachtvervanging. Er moet een lijst met voltooiingen worden afgedrukt, één per regel, naar het
standaard uitvoer. Backslash kan indien nodig worden gebruikt om aan een nieuwe regel te ontsnappen.

Nadat alle mogelijke voltooiingen zijn gegenereerd, wordt elk filter dat is opgegeven met de -X
optie wordt toegepast op de lijst. Het filter is een patroon zoals gebruikt voor padnaamuitbreiding; A
& in het patroon wordt vervangen door de tekst van het woord dat wordt voltooid. Een letterlijke & mogen
ontsnapt worden met een backslash; de backslash wordt verwijderd voordat een match wordt geprobeerd. Elk
voltooiing die overeenkomt met het patroon, wordt uit de lijst verwijderd. Een leidende ! ontkent
het patroon; in dit geval wordt elke voltooiing die niet overeenkomt met het patroon verwijderd.

Ten slotte worden alle voor- en achtervoegsels gespecificeerd met de -P en -S Aan elk worden opties toegevoegd
lid van de voltooiingslijst en het resultaat wordt geretourneerd naar de leesregelvoltooiingscode
als de lijst met mogelijke voltooiingen.

Als de eerder toegepaste acties geen overeenkomsten genereren, en de -o mapnamen optie
aan werd geleverd compleet toen de compspec werd gedefinieerd, is de voltooiing van de mapnaam
geprobeerd.

Indien de -o plusdirs optie werd geleverd compleet toen de compspec werd gedefinieerd,
Er wordt geprobeerd de mapnaam te voltooien en eventuele overeenkomsten worden toegevoegd aan de resultaten van de
andere acties.

Als er een compspec wordt gevonden, wordt alles wat deze genereert standaard teruggestuurd naar de voltooiing
code als de volledige set van mogelijke voltooiingen. De standaard slaan voltooiingen niet
geprobeerd en de leesregelstandaard voor het voltooien van de bestandsnaam is uitgeschakeld. Als de -o
bashstandaard optie werd geleverd compleet toen de compspec werd gedefinieerd, werd de slaan
standaardaanvullingen worden geprobeerd als de compspec geen overeenkomsten genereert. Als de -o verzuim
optie werd geleverd compleet toen de compspec werd gedefinieerd, de standaardwaarde van readline
voltooiing zal worden uitgevoerd als de compspec (en, indien geprobeerd, de standaard slaan
voltooiingen) genereren geen overeenkomsten.

Wanneer een compspec aangeeft dat voltooiing van de mapnaam gewenst is, wordt het programmeerbare
voltooiingsfuncties dwingen de leesregel om een ​​schuine streep toe te voegen aan voltooide namen die dat wel zijn
symbolische links naar mappen, afhankelijk van de waarde van de mark-mappen readline
variabel, ongeacht de instelling van de mark-symlinked-mappen leesregelvariabele.

Er is enige ondersteuning voor het dynamisch wijzigen van voltooiingen. Dit is het handigst wanneer
gebruikt in combinatie met een standaardaanvulling gespecificeerd met compleet -D. Het is mogelijk
voor shell-functies die worden uitgevoerd als voltooiingshandlers om aan te geven dat voltooiing zou moeten zijn
opnieuw geprobeerd door de afsluitstatus 124 terug te geven. Als een shell-functie 124 retourneert en verandert
de compspec die is gekoppeld aan de opdracht waarop wordt geprobeerd de opdracht te voltooien (meegeleverd).
als het eerste argument wanneer de functie wordt uitgevoerd), wordt de programmeerbare voltooiing opnieuw gestart
vanaf het begin, met een poging om een ​​nieuwe compspec voor dat commando te vinden. Dit maakt het mogelijk
een reeks voltooiingen die dynamisch moeten worden gebouwd naarmate voltooiing wordt geprobeerd, in plaats van te zijn
in één keer geladen.

Ervan uitgaande dat er bijvoorbeeld een bibliotheek met compspecificaties is, die allemaal in een bestand worden bewaard
die overeenkomt met de naam van de opdracht, zou de volgende standaardaanvullingsfunctie dat doen
voltooiingen dynamisch laden:

_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
}
complete -D -F _completion_loader -o bashdefault -o standaard

GESCHIEDENIS


Wanneer de -o geschiedenis optie voor de reeks ingebouwde is ingeschakeld, biedt de shell toegang tot de
commando geschiedenis, de lijst met eerder getypte opdrachten. De waarde van de HISTGROOTTE
variabele wordt gebruikt als het aantal opdrachten dat in een geschiedenislijst moet worden opgeslagen. De tekst van de
laatste HISTGROOTTE opdrachten (standaard 500) worden opgeslagen. De shell slaat elke opdracht op in de
geschiedenislijst voorafgaand aan parameter- en variabelenuitbreiding (zie UITBREIDING hierboven) maar daarna
geschiedenisuitbreiding wordt uitgevoerd, afhankelijk van de waarden van de shell-variabelen HISTIGNOR
en HISTCONTROLE.

Bij het opstarten wordt de geschiedenis geïnitialiseerd vanuit het bestand met de naam van de variabele GESCHIEDENIS
(standaard ~ / .bash_geschiedenis). Het bestand met de naam van de waarde van GESCHIEDENIS wordt afgekapt, indien
Het is noodzakelijk dat het niet meer dan het aantal regels bevat dat is opgegeven door de waarde van
HISTFILEGROOTTE. Indien HISTFILEGROOTTE is niet ingesteld of is ingesteld op nul, een niet-numerieke waarde of een numeriek getal
waarde kleiner dan nul, wordt het geschiedenisbestand niet afgekapt. Wanneer het geschiedenisbestand wordt gelezen,
regels die beginnen met het geschiedeniscommentaarteken, onmiddellijk gevolgd door een cijfer are
geïnterpreteerd als tijdstempels voor de voorgaande geschiedenisregel. Deze tijdstempels zijn optioneel
weergegeven, afhankelijk van de waarde van de ZIJN TIJDFORMAAT variabel. Wanneer een schaal met
geschiedenis ingeschakeld uitgangen, de laatste $HISTSIZE regels worden vanuit de geschiedenislijst gekopieerd naar
$HISTBESTAND. Indien de histappend shell-optie is ingeschakeld (zie de beschrijving van winkelt voor
SHELL GEBOUWD COMMANDO'S hieronder), worden de regels toegevoegd aan het geschiedenisbestand, anders worden de
geschiedenisbestand wordt overschreven. Als GESCHIEDENIS niet is ingesteld of als het geschiedenisbestand niet kan worden geschreven,
de geschiedenis wordt niet opgeslagen. Als de ZIJN TIJDFORMAAT variabele is ingesteld, tijdstempels worden geschreven
naar het geschiedenisbestand, gemarkeerd met het geschiedeniscommentaarteken, zodat ze bewaard kunnen blijven
tijdens shell-sessies. Hierbij wordt het geschiedeniscommentaarteken gebruikt om tijdstempels te onderscheiden
van andere geschiedenislijnen. Nadat de geschiedenis is opgeslagen, wordt het geschiedenisbestand ingekort tot
bevatten niet meer dan HISTFILEGROOTTE lijnen. Als HISTFILEGROOTTE is uitgeschakeld of is ingesteld op nul, een niet-
numerieke waarde, of een numerieke waarde kleiner dan nul, wordt het geschiedenisbestand niet afgekapt.

Het ingebouwde commando fc (Zie SHELL GEBOUWD COMMANDO'S hieronder) kan worden gebruikt om en
voer een deel van de geschiedenislijst opnieuw uit. De geschiedenis ingebouwd kan worden gebruikt om of weer te geven
wijzig de geschiedenislijst en manipuleer het geschiedenisbestand. Wanneer u bewerkingen via de opdrachtregel gebruikt,
In elke bewerkingsmodus zijn zoekopdrachten beschikbaar die toegang geven tot de geschiedenis
lijst.

De shell maakt controle mogelijk over welke opdrachten in de geschiedenislijst worden opgeslagen. De
HISTCONTROLE en HISTIGNOR variabelen kunnen zo worden ingesteld dat de shell slechts een subset opslaat
van de ingevoerde opdrachten. De cmdist shell-optie, indien ingeschakeld, zorgt ervoor dat de shell dat doet
probeer elke regel van een opdracht met meerdere regels in hetzelfde geschiedenisitem op te slaan, toevoegend
puntkomma's waar nodig om de syntactische correctheid te behouden. De litist shell optie
zorgt ervoor dat de shell de opdracht opslaat met ingebedde nieuwe regels in plaats van puntkomma's. Zien
de beschrijving van de winkelt onder ingebouwd SHELL GEBOUWD COMMANDO'S voor informatie over
shell-opties instellen en uitschakelen.

GESCHIEDENIS UITBREIDING


De shell ondersteunt een geschiedenisuitbreidingsfunctie die vergelijkbaar is met de geschiedenisuitbreiding in
csh. In deze sectie wordt beschreven welke syntaxisfuncties beschikbaar zijn. Deze functie is ingeschakeld
standaard voor interactieve shells, en kan worden uitgeschakeld met behulp van de +H optie voor de reeks
ingebouwde opdracht (zie SHELL GEBOUWD COMMANDO'S onderstaand). Niet-interactieve shells presteren niet
geschiedenisuitbreiding standaard.

Geschiedenisuitbreidingen introduceren woorden uit de geschiedenislijst in de invoerstroom, waardoor deze wordt gemaakt
Gemakkelijk te herhalen commando's, voeg de argumenten van een vorig commando in de huidige invoer in
regel, of herstel fouten in eerdere opdrachten snel.

Geschiedenisuitbreiding wordt onmiddellijk uitgevoerd nadat een volledige regel is gelezen, vóór de shell
verdeelt het in woorden. Het speelt zich af in twee delen. De eerste is om te bepalen welke lijn
uit de geschiedenislijst om te gebruiken tijdens vervanging. De tweede is om delen van te selecteren
die regel voor opname in de huidige. De regel die uit de geschiedenis is geselecteerd, is de
gebeurtenis, en de delen van die regel waarop wordt gereageerd, zijn dat ook woorden. divers modifiers zijn
beschikbaar om de geselecteerde woorden te manipuleren. De regel is op dezelfde manier in woorden onderverdeeld
mode als bij het lezen van invoer, zodat meerdere metateken-gescheiden woorden omgeven door
citaten worden als één woord beschouwd. Geschiedenisuitbreidingen worden geïntroduceerd door de verschijning van
het karakter van de geschiedenisexpansie, dat is ! standaard. Alleen een backslash (\) en single
citaten kunnen het karakter van de geschiedenisuitbreiding citeren.

Verschillende karakters belemmeren de uitbreiding van de geschiedenis als ze onmiddellijk na de geschiedenis worden gevonden
uitbreidingsteken, zelfs als het niet tussen aanhalingstekens staat: spatie, tab, nieuwe regel, regelterugloop en =.
Indien de extglob shell-optie is ingeschakeld, ( zal ook de expansie tegenhouden.

Verschillende shell-opties instelbaar met de winkelt ingebouwde kan worden gebruikt om het gedrag aan te passen
van de expansie van de geschiedenis. Als de histverifieer shell-optie is ingeschakeld (zie de beschrijving van
de winkelt hieronder ingebouwd), en readline wordt gebruikt, historische vervangingen niet
onmiddellijk doorgegeven aan de shell-parser. In plaats daarvan wordt de uitgevouwen regel opnieuw geladen in het
readline bewerkingsbuffer voor verdere wijziging. Als readline wordt gebruikt, en de
zijn bewerking shell-optie is ingeschakeld, wordt een mislukte geschiedenisvervanging opnieuw geladen
de readline bewerkingsbuffer voor correctie. De -p optie voor de geschiedenis ingebouwd commando
kan worden gebruikt om te zien wat een geschiedenisuitbreiding zal doen voordat deze wordt gebruikt. De -s optie voor de
geschiedenis ingebouwde kan worden gebruikt om opdrachten toe te voegen aan het einde van de geschiedenislijst zonder
daadwerkelijk uitvoeren ervan, zodat ze beschikbaar zijn voor latere terugroeping.

De schaal maakt controle mogelijk over de verschillende karakters die worden gebruikt door het geschiedenisuitbreidingsmechanisme
(zie de beschrijving van geschiedenis boven onder Shell Variabelen). De schaal maakt gebruik van de
geschiedeniscommentaarteken om geschiedenistijdstempels te markeren bij het schrijven van het geschiedenisbestand.

Event Aanduiders
Een gebeurtenisaanduiding is een verwijzing naar een opdrachtregelinvoer in de geschiedenislijst. Tenzij
de referentie is absoluut, gebeurtenissen zijn relatief ten opzichte van de huidige positie in de geschiedenis
lijst.

! Start een geschiedeniswissel, behalve wanneer gevolgd door a blanco, nieuwe regel, vervoer
return, = of ( (wanneer de extglob shell-optie is ingeschakeld met behulp van de winkelt ingebouwd).
!n Raadpleeg de opdrachtregel n.
!-n Raadpleeg het huidige commando minus n.
!! Raadpleeg de vorige opdracht. Dit is een synoniem voor `!-1'.
!snaar
Raadpleeg de meest recente opdracht voorafgaand aan de huidige positie in de geschiedenislijst
beginnend met snaar.
!?snaar[?]
Raadpleeg de meest recente opdracht voorafgaand aan de huidige positie in de geschiedenislijst
bevattende snaar. De achtervolging ? kan worden weggelaten als snaar wordt onmiddellijk gevolgd
door een nieuwe regel.
^string1^string2^
Snelle vervanging. Herhaal de vorige opdracht, vervang string1 Met string2.
Gelijk aan ``!!:s/string1/string2/'' (zien modifiers hieronder).
!# De volledige opdrachtregel die tot nu toe is getypt.

Woord Aanduiders
Woordaanduidingen worden gebruikt om de gewenste woorden uit de gebeurtenis te selecteren. A : scheidt het evenement
specificatie van de woordaanduiding. Het kan worden weggelaten als het woord aanduiding begint
met een ^, $, *, -of %. Woorden worden genummerd vanaf het begin van de regel, met de
het eerste woord wordt aangegeven met 0 (nul). Woorden worden gescheiden in de huidige regel ingevoegd
door enkele spaties.

0 (nul)
Het nulde woord. Voor de shell is dit het commandowoord.
n De ne woord.
^ Het eerste argument. Namelijk woord 1.
$ Het laatste woord. Dit is meestal het laatste argument, maar wordt uitgebreid tot de nul
woord als er maar één woord in de regel staat.
% Het woord dat overeenkomt met de meest recente `?snaar?' zoekopdracht.
x-y Een reeks woorden; `-y' is een afkorting van '0-y'.
* Alle woorden behalve de nul. Dit is een synoniem voor '1- $'. Het is geen fout
gebruiken * als er slechts één woord in de gebeurtenis voorkomt; de lege string wordt teruggegeven
dat geval.
x* Afkortingen x-$.
x- Afkortingen x-$ als x*, maar laat het laatste woord weg.

Als er een woordaanduiding wordt opgegeven zonder gebeurtenisspecificatie, is het vorige commando dat
gebruikt als evenement.

modifiers
Na de optionele woordaanduiding kan er een reeks van een of meer van de woorden verschijnen
volgende modifiers, elk voorafgegaan door een `:'.

h Verwijder een volgbestandsnaamcomponent, waarbij alleen de kop overblijft.
t Verwijder alle leidende bestandsnaamcomponenten en laat de staart achter.
r Verwijder een achtervoegsel van het formulier Xxx., waarbij de basisnaam overblijft.
e Verwijder alles behalve het achtervoegsel.
p Druk de nieuwe opdracht af, maar voer deze niet uit.
q Citeer de vervangende woorden en ontsnap aan verdere vervangingen.
x Citeer de vervangende woorden als met q, maar breek in woorden op blanks en nieuwe regels.
s/oud/nieuwe/
Plaatsvervanger nieuwe voor het eerste optreden van oud in de evenementenlijn. Elk scheidingsteken
kan worden gebruikt in plaats van /. Het laatste scheidingsteken is optioneel als dit het laatste is
karakter van de evenementenlijn. Het scheidingsteken mag tussen aanhalingstekens staan oud en nieuwe met een
enkele terugslag. Als & verschijnt in nieuwe, het wordt vervangen door oud. Een enkele terugslag
zal de &. Als oud nul is, wordt deze op de laatste gezet oud vervangen, of zo nee
Er vonden vervangingen in de vorige geschiedenis plaats, de laatste snaar een !?snaar[?]
zoeken.
& Herhaal de vorige vervanging.
g Zorg ervoor dat wijzigingen worden toegepast op de gehele gebeurtenisregel. Deze wordt gebruikt
combinatie met `:s' (bijvoorbeeld ':gs/oud/nieuwe/') of ':&'. Indien gebruikt met `:s', elk
scheidingsteken kan worden gebruikt in plaats van /, en het laatste scheidingsteken is optioneel als dit het geval is
het laatste teken van de gebeurtenisregel. Een a kan worden gebruikt als synoniem voor g.
G Pas het volgende toe `s'-modifier één keer voor elk woord in de gebeurtenisregel.

SHELL GEBOUWD COMMANDO'S


Tenzij anders vermeld, wordt elke ingebouwde opdracht in deze sectie als geaccepteerd beschouwd
opties voorafgegaan door - accepteert -- om het einde van de opties aan te duiden. De :, waar, vals,
en proef ingebouwde opties accepteren geen opties en behandelen niet -- speciaal. De afrit, uitloggen,
breken, voortzetten, laten en verschuiving ingebouwden accepteren en verwerken argumenten beginnend met -
zonder te vereisen --. Andere ingebouwde functies die argumenten accepteren, maar niet zijn gespecificeerd als
het accepteren van opties interpreteert argumenten die beginnen met - als ongeldige opties en vereisen --
om deze interpretatie te voorkomen.
: [argumenten]
Geen effect; het commando doet niets anders dan uitbreiden argumenten en het uitvoeren van eventuele
gespecificeerde omleidingen. Er wordt een nul-exitcode geretourneerd.

. bestandsnaam [argumenten]
(bron) bestandsnaam [argumenten]
Lees en voer commando's uit van bestandsnaam in de huidige shell-omgeving en terug
de afsluitstatus van de laatst uitgevoerde opdracht bestandsnaam. Indien bestandsnaam niet
bevatten een schuine streep, bestandsnamen in PATH worden gebruikt om de directory te vinden die
bestandsnaam. Het bestand waarnaar wordt gezocht in PATH hoeft niet uitvoerbaar te zijn. Wanneer slaan is niet
in posix mode, wordt de huidige map doorzocht als er geen bestand in wordt gevonden PATH. Indien
de bronpad optie voor de winkelt ingebouwde opdracht is uitgeschakeld, wordt de PATH is niet
gezocht. Indien aanwezig argumenten worden geleverd, worden ze de positionele parameters
wanneer bestandsnaam is geëxecuteerd. Anders blijven de positionele parameters ongewijzigd. De
retourstatus is de status van de laatste opdracht die binnen het script is afgesloten (0 als nee
commando's worden uitgevoerd) en false if bestandsnaam wordt niet gevonden of kan niet worden gelezen.

alias [-p] [naam[=waarde] ...]
Alias zonder argumenten of met de -p optie drukt de lijst met aliassen af ​​in de
formulier alias naam=waarde op standaarduitvoer. Als er argumenten worden opgegeven, is er een alias
voor elk gedefinieerd naam waarvan waarde is gegeven. Een achterliggende spatie waarde veroorzaakt de
volgende woord dat moet worden gecontroleerd op aliasvervanging wanneer de alias wordt uitgebreid. Voor
elk naam in de argumentenlijst waarvoor nr waarde wordt geleverd, de naam en de waarde
van de alias wordt afgedrukt. Alias retourneert waar, tenzij a naam wordt gegeven waarvoor nr
alias is gedefinieerd.

bg [taakspec
Hervat elke opgeschorte taak taakspec op de achtergrond, alsof er mee begonnen is
&. Indien taakspec niet aanwezig is, is het idee van de schaal van de actueel baan is gebruikt. bg
taakspec retourneert 0 tenzij uitgevoerd wanneer taakbeheer is uitgeschakeld of wanneer uitgevoerd met taak
controle ingeschakeld, gespecificeerd taakspec werd niet gevonden of werd zonder baan gestart
controle.

binden [-m toetsenbord] [-lpsvPSVX]
binden [-m toetsenbord] [-q functie] [-u functie] [-r sleutelsq]
binden [-m toetsenbord] -f bestandsnaam
binden [-m toetsenbord] -x sleutelsq:shell-commando
binden [-m toetsenbord] sleutelsq:functienaam
binden readline-opdracht
Toon stroom readline sleutel- en functiebindingen, binden een toetsenreeks aan a
readline functie of macro, of stel a in readline variabel. Elk niet-optieargument
is een commando zoals het eruit zou zien .invoerrc, maar elke binding of opdracht moet dat zijn
doorgegeven als een afzonderlijk argument; bijvoorbeeld '"\Cx\Cr": init-bestand opnieuw lezen'. Opties, als
geleverd, hebben de volgende betekenis:
-m toetsenbord
Te gebruiken toetsenbord als de toetsenbordindeling die door de daaropvolgende bindingen moet worden beïnvloed.
Aanvaardbaar toetsenbord namen zijn emacs, emacs-standaard, emacs-meta, emacs-ctlx,
Jij, vi-beweging, vi-commando en vi-inzet. vi is gelijk aan vi-commando;
emacs is gelijk aan emacs-standaard.
-l Noem de namen van allemaal readline functies.
-p Display readline functienamen en bindingen zodanig dat ze dat kunnen zijn
herlezen.
-P Lijst actueel readline functienamen en bindingen.
-s Display readline toetsreeksen die zijn gebonden aan macro's en de tekenreeksen die ze uitvoeren
zodanig dat ze herlezen kunnen worden.
-S Display readline toetsreeksen die zijn gebonden aan macro's en de tekenreeksen die ze uitvoeren.
-v Display readline namen en waarden van variabelen op zo'n manier dat ze dat kunnen zijn
herlezen.
-V Lijst actueel readline namen en waarden van variabelen.
-f bestandsnaam
Sleutelbindingen uitlezen bestandsnaam.
-q functie
Query over welke sleutels het benoemde bestand aanroepen functie.
-u functie
Maak alle sleutels los die aan de genoemde naam zijn gebonden functie.
-r sleutelsq
Verwijder eventuele huidige bindingen voor sleutelsq.
-x sleutelsq:shell-commando
Veroorzaken shell-commando wanneer dan ook uitgevoerd te worden sleutelsq wordt ingevoerd. Wanneer
shell-commando wordt uitgevoerd, stelt de shell de READLINE_LINE variabel naar de
inhoud van de readline lijnbuffer en de READLINE_POINT variabel naar de
huidige locatie van het invoegpunt. Als het uitgevoerde commando verandert
de waarde van READLINE_LINE or READLINE_POINT, die nieuwe waarden zullen zijn
weerspiegeld in de bewerkingsstatus.
-X Maak een lijst van alle toetsreeksen die zijn gekoppeld aan shell-opdrachten en de bijbehorende opdrachten
in een formaat dat kan worden hergebruikt als invoer.

De retourwaarde is 0, tenzij een niet-herkende optie wordt gegeven of er een fout is opgetreden.

breken [n]
Verlaat vanuit a For, en, totof kiezen lus. Als n is gespecificeerd, breken n
levels. n moet ≥ 1 zijn. Als n is groter dan het aantal omhullende lussen, allemaal
omhullende lussen worden verlaten. De retourwaarde is 0, tenzij n is niet groter dan of
gelijk aan 1.

ingebouwde casco ingebouwd [argumenten]
Voer de opgegeven ingebouwde shell uit en geef deze door argumentenen keert terug naar de uitgang
toestand. Dit is handig bij het definiëren van een functie waarvan de naam dezelfde is als een shell
ingebouwd, waarbij de functionaliteit van het ingebouwde binnen de functie behouden blijft. De cd
ingebouwd wordt gewoonlijk op deze manier opnieuw gedefinieerd. De retourstatus is false if
casco ingebouwd is geen in de shell ingebouwde opdracht.

bezoeker [uitdrukken]
Retourneert de context van elke actieve subroutineaanroep (een shell-functie of een script
uitgevoerd met de . or (bron) inbouw). Zonder uitdrukken, bezoeker geeft de lijn weer
nummer en bronbestandsnaam van de huidige subroutineoproep. Indien niet-negatief
geheel getal wordt geleverd als uitdrukken, bezoeker toont het lijnnummer, de naam van de subroutine en
bronbestand dat overeenkomt met die positie in de huidige uitvoeringsaanroepstapel.
Deze extra informatie kan bijvoorbeeld worden gebruikt om een ​​stacktrace af te drukken. De
huidige frame is frame 0. De retourwaarde is 0, tenzij de shell niet wordt uitgevoerd
een subroutine-oproep of uitdrukken komt niet overeen met een geldige positie in de oproep
stack.

cd [-L|[-P [-e]] [-@]] [dir]
Wijzig de huidige map in dir. indien dir niet wordt geleverd, is de waarde van de HOME
shell-variabele is de standaard. Eventuele aanvullende argumenten volgen dir worden genegeerd.
De variabele CDPATH definieert het zoekpad voor de map die het bevat dir: elk
mapnaam in CDPATH wordt gezocht dir. Alternatieve mapnamen in
CDPATH worden gescheiden door een dubbele punt (:). Een null-mapnaam in CDPATH is hetzelfde
als de huidige directory, dwz ``.''. Als dir begint dan met een schuine streep (/). CDPATH
het is niet gebruikt. De -P optie oorzaken cd om de fysieke mapstructuur te gebruiken
symbolische koppelingen oplossen tijdens het doorlopen dir en vóór het verwerken van exemplaren van ..
in dir (zie ook de -P optie voor de reeks ingebouwde opdracht); de -L optie krachten
symbolische links die moeten worden gevolgd door het oplossen van de link na het verwerken van exemplaren van
.. in dir. Indien .. verschijnt in dir, wordt het verwerkt door het onmiddellijk te verwijderen
vorige padnaamcomponent uit dir, terug naar een schuine streep of het begin van dir. Indien
de -e optie wordt meegeleverd -P, en de huidige werkmap kan dat niet zijn
met succes bepaald na een succesvolle directorywijziging, cd zal terugkeren een
mislukte status. Op systemen die dit ondersteunen, kan de -@ optie presenteert de
uitgebreide kenmerken die aan een bestand zijn gekoppeld als een map. Een betoog van - is
omgezet naar $OUDPWD voordat wordt geprobeerd de map te wijzigen. Als een niet-leeg
mapnaam uit CDPATH wordt gebruikt, of als - is het eerste argument, en de
de mapwijziging is gelukt, de absolute padnaam van de nieuwe werkmap
wordt naar de standaarduitvoer geschreven. De geretourneerde waarde is waar als de map dat was
succesvol gewijzigd; anders vals.

commando [-pVv] commando [arg
lopen commando Met betoogt het onderdrukken van de normale zoekopdracht naar de shell-functie. Alleen ingebouwd
opdrachten of opdrachten gevonden in de PATH worden geëxecuteerd. Als de -p optie wordt gegeven,
de zoektocht naar commando wordt uitgevoerd met behulp van een standaardwaarde voor PATH dat is
gegarandeerd alle standaardhulpprogramma's te vinden. Als ofwel de -V or -v Optie is
geleverd, een beschrijving van commando wordt afgedrukt. De -v optie veroorzaakt een enkel woord
geeft de opdracht of bestandsnaam aan die wordt gebruikt om aan te roepen commando weergegeven worden; de -V
optie levert een uitgebreidere beschrijving op. Als de -V or -v optie wordt meegeleverd,
de uitgangsstatus is 0 als commando gevonden, en 1 indien niet. Als geen van beide opties dat is
geleverd en er is een fout opgetreden of commando kan niet worden gevonden, de afsluitstatus is 127.
Anders wordt de afsluitstatus van de commando ingebouwd is de afsluitstatus van commando.

compgen [optie] [woord]
Genereer mogelijke voltooiingsmatches voor woord volgens de opties, wat mag
elke optie aanvaard door de compleet ingebouwd, met uitzondering van -p en -r en
schrijf de overeenkomsten naar de standaarduitvoer. Bij gebruik van de -F or -C opties, de
verschillende shell-variabelen ingesteld door de programmeerbare voltooiingsfaciliteiten, terwijl
beschikbaar, zal geen bruikbare waarden hebben.

De matches worden op dezelfde manier gegenereerd als bij de programmeerbare voltooiing
code had ze rechtstreeks gegenereerd op basis van een voltooiingsspecificatie met hetzelfde
vlaggen. Als woord is gespecificeerd, alleen de voltooiingen die overeenkomen woord zal zijn
weergegeven.

De retourwaarde is waar, tenzij er een ongeldige optie wordt opgegeven of er geen overeenkomsten zijn
gegenereerd.

compleet [-abcdefgjksuv] [-o comp-optie] [-DE] [-A actie] [-G globaal] [-W woordenlijst] [-F
functie] [-C commando]
[-X filterpat] [-P voorvoegsel] [-S achtervoegsel] naam [naam ...]
compleet -pr [-DE] [naam
Specificeer hoe argumenten voor elk naam moet worden voltooid. Als de -p Optie is
geleverd, of als er geen opties worden geleverd, bestaande opleveringsspecificaties wel
zodanig afgedrukt dat ze opnieuw als input kunnen worden gebruikt. De -r optie verwijdert een
voltooiingsspecificatie voor elk naam, of, indien nee naams worden geleverd, allemaal
voltooiing specificaties. De -D optie geeft aan dat de resterende opties en
acties moeten van toepassing zijn op de voltooiing van de opdracht ``default''; dat wil zeggen, voltooiing
geprobeerd met een opdracht waarvoor nog geen voltooiing is gedefinieerd. De -E
optie geeft aan dat de resterende opties en acties van toepassing moeten zijn op ``lege''
voltooiing van de opdracht; dat wil zeggen, een poging tot voltooiing op een lege regel.

Het proces van het toepassen van deze voltooiingsspecificaties wanneer woordvoltooiing is
geprobeerd, wordt hierboven beschreven Programmeerbare Voltooiing.

Andere opties, indien gespecificeerd, hebben de volgende betekenis. De argumenten voor de -G,
-W en -X opties (en, indien nodig, de -P en -S opties) moet worden vermeld
bescherm ze tegen expansie vóór de compleet ingebouwde wordt aangeroepen.
-o comp-optie
De comp-optie controleert verschillende aspecten van het gedrag van de compspec daarbuiten
het eenvoudig genereren van voltooiingen. comp-optie kan een van zijn:
bashstandaard
Voer de rest van de standaard uit slaan voltooiingen als de compspec
genereert geen overeenkomsten.
verzuim Gebruik de standaardaanvulling van de bestandsnaam van readline als de compspec
genereert geen overeenkomsten.
mapnamen
Voer de mapnaamaanvulling uit als de compspec nee genereert
wedstrijden.
bestandsnamen
Vertel readline dat de compspec bestandsnamen genereert, zodat dit mogelijk is
voer een bestandsnaamspecifieke verwerking uit (zoals het toevoegen van een schuine streep aan
mapnamen, speciale tekens aanhalen of onderdrukken
volgspaties). Bedoeld voor gebruik met shell-functies.
geen aanhalingsteken Vertel de leesregel dat hij de voltooide woorden niet moet citeren als dat wel het geval is
bestandsnamen (het aanhalen van bestandsnamen is de standaardinstelling).
geen ruimte Vertel de leesregel dat er geen spatie (standaard) aan woorden moet worden toegevoegd
voltooid aan het einde van de regel.
plusdirs
Nadat eventuele door de compspec gedefinieerde overeenkomsten zijn gegenereerd, wordt directory
Er wordt geprobeerd de naam aan te vullen en eventuele overeenkomsten worden toegevoegd aan het
resultaten van de andere acties.
-A actie
De actie kan een van de volgende zijn om een ​​lijst met mogelijke opties te genereren
voltooiingen:
alias Aliasnamen. Kan ook worden gespecificeerd als -a.
arrayvar
Namen van arrayvariabelen.
verbindend Lees regel namen van sleutelbindingen.
ingebouwde Namen van ingebouwde shell-opdrachten. Kan ook worden gespecificeerd als -b.
commando Namen van opdrachten. Kan ook worden gespecificeerd als -c.
directory
Directorynamen. Kan ook worden gespecificeerd als -d.
invalide
Namen van uitgeschakelde shell-ingebouwdes.
ingeschakeld Namen van ingeschakelde shell-ingebouwdes.
exporteren Namen van geëxporteerde shell-variabelen. Kan ook worden gespecificeerd als -e.
filet Bestandsnamen. Kan ook worden gespecificeerd als -f.
functie
Namen van shell-functies.
groep Groepsnamen. Kan ook worden gespecificeerd als -g.
Help onderwerp
Help-onderwerpen zoals geaccepteerd door de hulp ingebouwd.
hostname
Hostnamen, zoals afkomstig uit het bestand dat is opgegeven door de HOSTBESTAND schelp
variabel.
baan Taaknamen, als taakbeheer actief is. Kan ook worden gespecificeerd als -j.
trefwoord Shell heeft woorden gereserveerd. Kan ook worden gespecificeerd als -k.
lopend Namen van actieve taken, als taakbeheer actief is.
service Servicenamen. Kan ook worden gespecificeerd als -s.
instellen Geldige argumenten voor de -o optie voor de reeks ingebouwd.
winkelt Shell-optienamen zoals geaccepteerd door de winkelt ingebouwd.
signaal Signaal namen.
gestopt Namen van gestopte taken, als taakbeheer actief is.
gebruiker Gebruikersnamen. Kan ook worden gespecificeerd als -u.
variabele
Namen van alle shell-variabelen. Kan ook worden gespecificeerd als -v.
-C commando
commando wordt uitgevoerd in een subshell-omgeving en de uitvoer ervan wordt gebruikt als
de mogelijke invullingen.
-F functie
De shell-functie functie wordt uitgevoerd in de huidige shell-omgeving.
Wanneer de functie wordt uitgevoerd, wordt het eerste argument ($1) is de naam van de
commando waarvan de argumenten worden aangevuld, het tweede argument ($2) is
het woord dat wordt voltooid, en het derde argument ($3) is het voorafgaande woord
het woord dat wordt voltooid op de huidige opdrachtregel. Wanneer het klaar is,
de mogelijke voltooiingen worden opgehaald uit de waarde van de VOLLEDIG
array-variabele.
-G globaal
Het uitbreidingspatroon van de padnaam globaal wordt uitgebreid om het mogelijke te genereren
voltooiingen.
-P voorvoegsel
voorvoegsel wordt immers aan het begin van elke mogelijke voltooiing toegevoegd
andere opties zijn toegepast.
-S achtervoegsel
achtervoegsel wordt aan elke mogelijke voltooiing toegevoegd nadat alle andere opties dat hebben gedaan
toegepast.
-W woordenlijst
De woordenlijst wordt gesplitst met behulp van de tekens in de IFS speciale variabele als
scheidingstekens, en elk resulterend woord wordt uitgebreid. De mogelijke voltooiingen
zijn de leden van de resulterende lijst die overeenkomen met het woord dat wordt voltooid.
-X filterpat
filterpat is een patroon zoals gebruikt voor padnaamuitbreiding. Het wordt toegepast op
de lijst met mogelijke voltooiingen gegenereerd door de voorgaande opties en
argumenten, en elke voltooiing komt overeen filterpat wordt uit de lijst verwijderd.
Een leidende ! in filterpat ontkent het patroon; in dit geval elke voltooiing
niet passend filterpat is verwijderd.

De retourwaarde is waar, tenzij er een ongeldige optie wordt opgegeven, een andere optie dan
-p or -r wordt geleverd zonder een naam argument, wordt er geprobeerd om a. te verwijderen
voltooiingsspecificatie voor een naam waarvoor geen specificatie bestaat, of een fout
vindt plaats door het toevoegen van een voltooiingsspecificatie.

compopt [-o optie] [-DE] [+o optie] [naam]
Wijzig de voltooiingsopties voor elk naam volgens de opties, of voor de
momenteel uitgevoerde voltooiing, indien nee naams worden geleverd. Als Nee opties worden gegeven,
geef de voltooiingsopties voor elk weer naam of de huidige voltooiing. De
mogelijke waarden van optie zijn die geldig voor de compleet ingebouwd zoals hierboven beschreven.
De -D optie geeft aan dat de overige opties van toepassing moeten zijn op de ``standaard''
opdrachtvoltooiing; dat wil zeggen, een poging tot voltooiing van een opdracht waarvoor nr
voltooiing is eerder gedefinieerd. De -E optie geeft aan dat de resterende
opties moeten van toepassing zijn op de voltooiing van de ``lege'' opdracht; dat wil zeggen: poging tot voltooiing
op een lege regel.

De retourwaarde is waar, tenzij er een ongeldige optie wordt opgegeven en er een poging wordt gedaan
om de opties voor a te wijzigen naam waarvoor geen opleveringsspecificatie bestaat, of
er treedt een uitvoerfout op.

voortzetten [n]
Hervat de volgende iteratie van de omhulling For, en, totof kiezen lus. Als n
is opgegeven, hervatten op de nde omsluitende lus. n moet ≥ 1 zijn. Als n is groter
dan het aantal omsluitende lussen, de laatste omsluitende lus (het ``topniveau''
lus) wordt hervat. De retourwaarde is 0, tenzij n is niet groter dan of gelijk aan
1.

verklaren [-aAfFgilnrtux] [-p] [naam[=waarde] ...]
gezet [-aAfFgilnrtux] [-p] [naam[=waarde] ...]
Declareer variabelen en/of geef ze attributen. Als Nee naams worden gegeven en vervolgens weergegeven
de waarden van variabelen. De -p optie toont de attributen en waarden van
elk naam. Wanneer -p wordt gebruikt met naam argumenten, aanvullende opties, anders dan -f
en -F, worden genegeerd. Wanneer -p wordt geleverd zonder naam argumenten, wordt weergegeven
de attributen en waarden van alle variabelen met de attributen gespecificeerd door de
toegevoegde opties. Als er geen andere opties worden meegeleverd -p, verklaren verschijnt
de attributen en waarden van alle shell-variabelen. De -f optie beperkt de
weergave naar shell-functies. De -F optie verhindert de weergave van de functie
definities; alleen de functienaam en attributen worden afgedrukt. Als de extdebug
shell-optie is ingeschakeld met behulp van winkelt, de naam van het bronbestand en het regelnummer waar de
functie is gedefinieerd, worden ook weergegeven. De -F optie impliceert -f. De -g
optie dwingt dat variabelen worden gemaakt of gewijzigd op het globale bereik, zelfs wanneer
verklaren wordt uitgevoerd in een shell-functie. In alle andere gevallen wordt dit genegeerd. De
De volgende opties kunnen worden gebruikt om de uitvoer te beperken tot variabelen met de opgegeven waarden
attribuut of om variabelen attributen te geven:
-a Elke naam is een geïndexeerde arrayvariabele (zie arrays bovenstaande).
-A Elke naam is een associatieve arrayvariabele (zie arrays bovenstaande).
-f Gebruik alleen functienamen.
-i De variabele wordt behandeld als een geheel getal; rekenkundige evaluatie (zie REKENKUNDIG
EVALUATIE hierboven) wordt uitgevoerd wanneer aan de variabele een waarde wordt toegewezen.
-l Wanneer aan de variabele een waarde wordt toegewezen, zijn dit alleen hoofdletters
omgezet naar kleine letters. Het attribuut in hoofdletters is uitgeschakeld.
-n Geef elk naam de naamref attribuut, waardoor het een naamverwijzing naar een ander kenmerk wordt
variabel. Die andere variabele wordt gedefinieerd door de waarde van naam. Alle
referenties en opdrachten naar naam, behalve het wijzigen van de -n attribuut
zelf, worden uitgevoerd op de variabele waarnaar wordt verwezen naam's waarde. De -n
attribuut kan niet worden toegepast op arrayvariabelen.
-r Merk naamis alleen-lezen. Aan deze namen kunnen vervolgens geen waarden worden toegewezen
daaropvolgende toewijzingsinstructies of uitgeschakeld.
-t Geef elk naam de opsporen attribuut. Getraceerde functies nemen de DEBUG en
RETURN traps uit de oproepende shell. Het trace-attribuut heeft geen speciale kenmerken
betekenis voor variabelen.
-u Wanneer aan de variabele een waarde wordt toegewezen, zijn dit alle kleine letters
omgezet in hoofdletters. Het kenmerk kleine letters is uitgeschakeld.
-x Markeer naams voor export naar volgende opdrachten via de omgeving.

Als u `+' in plaats van `-' gebruikt, wordt het attribuut uitgeschakeld, met de uitzonderingen hierop
+a mag niet worden gebruikt om een ​​arrayvariabele te vernietigen en +r zal het alleen-lezen niet verwijderen
attribuut. Bij gebruik in een functie, verklaren en gezet maak elk naam lokaal, als
met de lokaal opdracht, tenzij de -g optie wordt meegeleverd. Als een variabelenaam
gevolgd door =waarde, wordt de waarde van de variabele ingesteld op waarde. Tijdens gebruik -a or -A
en de syntaxis van samengestelde toewijzingen om arrayvariabelen en aanvullende attributen te maken
treden pas in werking bij volgende opdrachten. De retourwaarde is 0, tenzij er een
Er wordt een ongeldige optie aangetroffen, er wordt geprobeerd een functie te definiëren met behulp van ``-f
foo=bar'', er wordt geprobeerd een waarde toe te wijzen aan een alleen-lezen variabele, een poging
is gemaakt om een ​​waarde aan een arrayvariabele toe te wijzen zonder de verbinding te gebruiken
toewijzingssyntaxis (zie arrays hierboven), een van de namen is geen geldige shell
variabelenaam, wordt geprobeerd de alleen-lezenstatus uit te schakelen voor een alleen-lezen
variabele: er wordt geprobeerd de arraystatus voor een arrayvariabele uit te schakelen, of een
Er wordt geprobeerd een niet-bestaande functie weer te geven -f.

dirs [-clpv] [+n] [-n]
Zonder opties wordt de lijst met momenteel onthouden mappen weergegeven. De
standaardweergave is op één regel, met mapnamen gescheiden door spaties.
Directory's worden aan de lijst toegevoegd met de pushd commando; de popd opdracht verwijdert
vermeldingen uit de lijst.
-c Wist de mappenstapel door alle vermeldingen te verwijderen.
-l Produceert een lijst met volledige padnamen; het standaard aanbiedingsformaat gebruikt a
tilde om de thuismap aan te duiden.
-p Druk de mappenstapel af met één item per regel.
-v Druk de mappenstapel af met één item per regel, waarbij elk item wordt voorafgegaan door
de index in de stapel.
+n Geeft de ne invoer vanaf de linkerkant van de lijst weergegeven door dirs wanneer
aangeroepen zonder opties, beginnend met nul.
-n Geeft de ne invoer vanaf de rechterkant van de lijst weergegeven door dirs
wanneer aangeroepen zonder opties, beginnend met nul.

De retourwaarde is 0, tenzij er een ongeldige optie wordt opgegeven of n indexen voorbij de
einde van de mappenstapel.

verloochenen [-ar] [-h] [taakspec
Zonder opties: verwijder ze allemaal taakspec uit de tabel met actieve banen. Als taakspec is
niet aanwezig, en ook niet -a noch -r optie wordt geleverd, de actueel baan is
gebruikt. Als de -h optie wordt gegeven, elk taakspec wordt niet van tafel gehaald, maar
is zo gemarkeerd ZUCHT wordt niet naar de taak verzonden als de shell een ontvangt ZUCHT. Indien
geen taakspec wordt geleverd, de -a optie betekent het verwijderen of markeren van alle taken; de -r
optie zonder een taakspec argument beperkt de werking tot actieve taken. De terugkeer
waarde is 0 tenzij a taakspec geeft geen geldige taak aan.

echo [-neE] [arg
Voer de args, gescheiden door spaties, gevolgd door een nieuwe regel. De retourstatus is
0 tenzij er een schrijffout optreedt. Als -n is opgegeven, is de afsluitende nieuwe regel dat wel
onderdrukt. Als de -e optie wordt gegeven, interpretatie van de volgende backslash-
ontsnapte tekens zijn ingeschakeld. De -E optie schakelt de interpretatie hiervan uit
escape-tekens, zelfs op systemen waarop ze standaard worden geïnterpreteerd. De
xpg_echo shell-optie kan worden gebruikt om dynamisch te bepalen of dit wel of niet het geval is echo
breidt deze escape-tekens standaard uit. echo interpreteert niet -- de betekenis van
einde van de opties. echo interpreteert de volgende ontsnappingssequenties:
\a alarm (bel)
\b backspace
\c verdere productie onderdrukken
\e
\E een ontsnappingskarakter
\f vorm feed
\n nieuwe lijn
\r vervoer retour
\t horizontale tab
\v verticaal tabblad
\\ backslash
\0nnn het acht-bits teken waarvan de waarde de octale waarde is nnn (nul tot drie
octale cijfers)
\xHH het acht-bits teken waarvan de waarde de hexadecimale waarde is HH (een of twee
hexadecimale cijfers)
\uHhhh het Unicode-teken (ISO/IEC 10646) waarvan de waarde de hexadecimale waarde is
Hhhh (één tot vier hexadecimale cijfers)
\UHHHHHHH
het Unicode-teken (ISO/IEC 10646) waarvan de waarde de hexadecimale waarde is
HHHHHHH (één tot acht hexadecimale cijfers)

in staat stellen [-a] [-dnps] [-f bestandsnaam] [naam
Schakel ingebouwde shell-opdrachten in en uit. Als u een ingebouwde functie uitschakelt, wordt een schijf toegestaan
commando dat dezelfde naam heeft als een ingebouwde shell die zonder uitgevoerd moet worden
door een volledige padnaam op te geven, ook al zoekt de shell normaal gesproken naar ingebouwde instellingen
vóór schijfopdrachten. Als -n wordt gebruikt, elk naam is gehandicapt; anders, namen zijn
ingeschakeld. Om bijvoorbeeld gebruik te maken van de proef binair gevonden via de PATH in plaats van de
shell ingebouwde versie, voer ``enable -n test'' uit. De -f optie betekent om het nieuwe te laden
ingebouwd commando naam van een gedeeld object bestandsnaam, op systemen die dynamic
bezig met laden. De -d optie zal een eerder geladen ingebouwde optie verwijderen -f​ Als Nee
naam argumenten worden gegeven, of als de -p optie wordt geleverd, een lijst met ingebouwde shell-ins
wordt afgedrukt. Zonder andere optieargumenten bestaat de lijst uit alle ingeschakelde shells
inbouw. Als -n wordt meegeleverd, alleen uitgeschakelde ingebouwde ingebouwde onderdelen worden afgedrukt. Als -a is
meegeleverd, bevat de afgedrukte lijst alle ingebouwde ins, met een indicatie of en
niet elk is ingeschakeld. Als -s wordt geleverd, is de uitvoer beperkt tot de POSIX
special inbouw. De retourwaarde is 0 tenzij a naam is geen shell ingebouwd of
er is een fout opgetreden bij het laden van een nieuwe ingebouwde versie van een gedeeld object.

eval [arg
De args worden gelezen en samengevoegd tot één enkele opdracht. Deze opdracht is
vervolgens gelezen en uitgevoerd door de shell, en de exit-status wordt geretourneerd als de waarde
of eval. Als er geen zijn betoogt, of alleen nulargumenten, eval geeft 0 terug.

exec [-kl] [-a naam] [commando [argumenten]]
If commando is opgegeven, vervangt deze de shell. Er wordt geen nieuw proces gecreëerd. De
argumenten worden de argumenten daarvoor commando. Indien de -l optie wordt meegeleverd, de schaal
plaatst een streepje aan het begin van het nulde argument waaraan wordt doorgegeven commando. Dit is
wat Log in(1) wel. De -c optie oorzaken commando uit te voeren met een lege
omgeving. Als -a wordt geleverd, gaat de schaal voorbij naam als het nulde argument
het uitgevoerde commando. Als commando om de een of andere reden niet kan worden uitgevoerd, een niet-
interactieve shell wordt afgesloten, tenzij de uitvoeren shell-optie is ingeschakeld. In dat
In dat geval retourneert het een mislukking. Een interactieve shell retourneert een fout als het bestand dat niet kan
geëxecuteerd worden. Als commando niet is opgegeven, worden eventuele omleidingen van kracht in de
huidige shell en de retourstatus is 0. Als er een omleidingsfout is, wordt de
retourstatus is 1.

afrit [n]
Zorg ervoor dat de shell afsluit met de status n. Indien n wordt weggelaten, is de uitgangsstatus
die van het laatst uitgevoerde commando. Een val op EXIT wordt vóór de schaal uitgevoerd
eindigt.

exporteren [-fn] [naam[=woord]] ...
exporteren -p
De meegeleverde namen zijn gemarkeerd voor automatische export naar de omgeving van
vervolgens uitgevoerde opdrachten. Als de -f optie wordt gegeven, de namen Zie
functies. Als Nee namen worden gegeven, of als de -p optie wordt geleverd, een lijst met namen
van alle geëxporteerde variabelen wordt afgedrukt. De -n optie zorgt ervoor dat de exporteigenschap
van elk worden verwijderd naam. Als een variabelenaam wordt gevolgd door =woord, de waarde van
de variabele is ingesteld op woord. exporteren retourneert een afsluitstatus van 0, tenzij deze ongeldig is
optie wordt aangetroffen, een van de namen is geen geldige shellvariabelenaam, of -f
wordt geleverd met een naam dat is geen functie.

fc [-e emailleren] [-lnr] [eerste] [laatste]
fc -s [pat=rep] [cmd]
Het eerste formulier selecteert een reeks opdrachten uit eerste naar laatste uit de geschiedenislijst
en toont, bewerkt en voert ze opnieuw uit. Voornaam* en laatste kan worden gespecificeerd als een
string (om het laatste commando te vinden dat met die string begint) of als een getal (an
index in de geschiedenislijst, waar een negatief getal wordt gebruikt als verschuiving ten opzichte van de
huidige opdrachtnummer). Als laatste is niet opgegeven, maar is ingesteld op de huidige opdracht
voor het weergeven (zodat ``fc -l -10'' de laatste 10 opdrachten afdrukt) en naar eerste
anders. Indien eerste is niet gespecificeerd, maar wordt ingesteld op de vorige opdracht voor bewerking
en -16 voor vermelding.

De -n optie onderdrukt de opdrachtnummers bij het weergeven. De -r optie keert om
de volgorde van de commando's. Als de -l optie wordt gegeven, worden de opdrachten vermeld op
standaard uitvoer. Anders wordt de redacteur gegeven door emailleren wordt aangeroepen op een bestand
die deze commando's bevat. Als emailleren niet gegeven, de waarde van de FCEDIT variabele
wordt gebruikt, en de waarde ervan EDITOR if FCEDIT is niet ingesteld. Als geen van beide variabelen is ingesteld,
vi is gebruikt. Wanneer het bewerken is voltooid, worden de bewerkte opdrachten herhaald en uitgevoerd.

In de tweede vorm, commando wordt na elk exemplaar van pat is vervangen
by rep. commando wordt hetzelfde geïnterpreteerd als eerste boven. Een handig alias om mee te gebruiken
dit is ``r="fc -s"'', zodat het typen van ``r cc'' het laatste commando uitvoert dat begint met
``cc'' en ``r'' typen, voert het laatste commando opnieuw uit.

Als het eerste formulier wordt gebruikt, is de retourwaarde 0, tenzij er een ongeldige optie is
tegengekomen of eerste or laatste geef geschiedenisregels op die buiten bereik liggen. Als de -e optie
wordt opgegeven, is de retourwaarde de waarde van de laatst uitgevoerde of mislukte opdracht
als er een fout optreedt met het tijdelijke bestand met opdrachten. Als het tweede formulier is
gebruikt, is de retourstatus die van de opnieuw uitgevoerde opdracht, tenzij cmd niet
geef in dat geval een geldige geschiedenisregel op fc geeft een mislukking terug.

fg [taakspec]
Hervat taakspec op de voorgrond en maak er de huidige taak van. Als taakspec is niet
aanwezig, het idee van de schaal van de actueel baan is gebruikt. De retourwaarde is dat
van de opdracht die op de voorgrond is geplaatst, of een fout als deze wordt uitgevoerd terwijl er taakcontrole is
uitgeschakeld of, wanneer uitgevoerd met taakbeheer ingeschakeld, indien taakspec specificeert geen geldige
baan of taakspec geeft een taak aan die is gestart zonder taakcontrole.

getopt optstring naam [betoogt]
getopt wordt door shell-procedures gebruikt om positionele parameters te ontleden. optstring
bevat de optietekens die moeten worden herkend; als een teken wordt gevolgd door een
dubbele punt: er wordt verwacht dat de optie een argument heeft, waarvan moet worden gescheiden
het door witruimte. De dubbele punt en het vraagteken mogen niet worden gebruikt als
optie tekens. Elke keer dat er een beroep op wordt gedaan, getopt plaatst de volgende optie in de
shell-variabele naam, initialiseren naam als het niet bestaat, en de index van de
volgende argument dat in de variabele moet worden verwerkt OPTIND. OPTIND wordt geïnitialiseerd op 1
elke keer dat de shell of een shellscript wordt aangeroepen. Wanneer een optie een
argument, getopt plaatst dat argument in de variabele OPTARG. De schaal wel
niet resetten OPTIND automatisch; het moet handmatig worden gereset tussen meerdere oproepen naar
getopt binnen dezelfde shell-aanroep als een nieuwe set parameters moet worden gebruikt.

Wanneer het einde van de opties wordt bereikt, getopt wordt afgesloten met een grotere retourwaarde
dan nul. OPTIND is ingesteld op de index van het eerste niet-optieargument, en naam
ingesteld op ?.

getopt normaal gesproken parseert de positionele parameters, maar als er meer argumenten worden opgegeven
in betoogt, getopt parseert deze in plaats daarvan.

getopt kan fouten op twee manieren melden. Als het eerste teken van optstring is een
dikke darm, stil Er wordt gebruik gemaakt van foutrapportage. Bij normaal bedrijf, diagnostische berichten
worden afgedrukt wanneer ongeldige opties of ontbrekende optieargumenten worden aangetroffen. Als
de variabele OPTERR is ingesteld op 0, worden er geen foutmeldingen weergegeven, zelfs niet als de
eerste karakter van optstring is geen dubbele punt.

Als er een ongeldige optie wordt gezien, getopt plaatsen? naar binnen naam en, als het niet stil is, afdrukken
een foutmelding en wordt uitgeschakeld OPTARG. Indien getopt is stil, het optiekarakter
gevonden wordt geplaatst OPTARG en er wordt geen diagnostisch bericht afgedrukt.

Als een vereist argument niet wordt gevonden, en getopt is niet stil, een vraagteken (?)
wordt geplaatst in naam, OPTARG is uitgeschakeld en er wordt een diagnostisch bericht afgedrukt. Als
getopt is stil, dan een dubbele punt (:) wordt geplaatst in naam en OPTARG is ingesteld op de
optieteken gevonden.

getopt retourneert waar als een optie, gespecificeerd of niet gespecificeerd, wordt gevonden. Het keert terug
false als het einde van de opties wordt aangetroffen of als er een fout optreedt.

hachee [-lr] [-p bestandsnaam] [-DT] [naam]
Elke keer weer hachee wordt aangeroepen, de volledige padnaam van de opdracht naam wordt bepaald door
zoeken in de mappen $ PATH en herinnerde. Alle eerder onthouden
padnaam wordt verwijderd. Als de -p optie wordt aangeboden, er wordt geen padzoekopdracht uitgevoerd,
en bestandsnaam wordt gebruikt als de volledige bestandsnaam van de opdracht. De -r optie veroorzaakt de
shell om alle onthouden locaties te vergeten. De -d optie zorgt ervoor dat de shell het vergeet
de herinnerde locatie van elk naam. Indien de -t optie wordt geleverd, de volledige
padnaam waarnaar elk naam overeenkomt, wordt afgedrukt. Indien meerdere naam argumenten zijn:
bevoorraad met -t naam wordt afgedrukt vóór de gehashte volledige padnaam. De -l
optie zorgt ervoor dat de uitvoer wordt weergegeven in een formaat dat kan worden hergebruikt als invoer. Als
er worden geen argumenten gegeven, of alleen maar -l wordt verstrekt, informatie over onthouden
opdrachten worden afgedrukt. De retourstatus is waar, tenzij a naam wordt niet gevonden of een
ongeldige optie is opgegeven.

hulp [-dm] [patroon]
Geef nuttige informatie weer over ingebouwde opdrachten. Als patroon is gespecificeerd, hulp
geeft gedetailleerde hulp bij het matchen van alle opdrachten patroon; anders hulp voor alle
ingebouwde en shell-besturingsstructuren worden afgedrukt.
-d Geef van elk een korte beschrijving weer patroon
-m Geef de beschrijving van elk weer patroon in een manpage-achtig formaat
-s Geef voor elk slechts een kort gebruiksoverzicht weer patroon

De retourstatus is 0, tenzij er geen opdracht overeenkomt patroon.

geschiedenis [n]
geschiedenis -c
geschiedenis -d compenseren
geschiedenis -anw [bestandsnaam]
geschiedenis -p arg [arg ...]
geschiedenis -s arg [arg ...]
Als er geen opties zijn, geeft u de lijst met opdrachtgeschiedenis weer met regelnummers. Lijnen vermeld
met een * zijn gewijzigd. Een betoog van n vermeldt alleen de laatste n lijnen. Als de
shell-variabele ZIJN TIJDFORMAAT is ingesteld en niet null, het wordt gebruikt als een formatstring
For tijd(3) om de tijdstempel weer te geven die bij elke weergegeven geschiedenis hoort
binnenkomst. Er wordt geen tussenliggende blanco afgedrukt tussen de opgemaakte tijdstempel en de
geschiedenis lijn. Als bestandsnaam wordt geleverd, wordt deze gebruikt als de naam van het geschiedenisbestand;
zo niet, de waarde van GESCHIEDENIS is gebruikt. Opties, indien meegeleverd, hebben het volgende
betekenissen:
-c Wis de geschiedenislijst door alle vermeldingen te verwijderen.
-d compenseren
Verwijder het geschiedenisitem op positie compenseren.
-a Voeg de ``nieuwe'' geschiedenisregels toe (geschiedenisregels die vanaf het begin zijn ingevoerd
van de stroom slaan sessie) naar het geschiedenisbestand.
-n Lees de geschiedenisregels die nog niet zijn gelezen uit het geschiedenisbestand in het
huidige geschiedenislijst. Dit zijn regels die sindsdien aan het geschiedenisbestand zijn toegevoegd
het begin van de stroom slaan sessie.
-r Lees de inhoud van het geschiedenisbestand en voeg deze toe aan de huidige geschiedenis
lijst.
-w Schrijf de huidige geschiedenislijst naar het geschiedenisbestand en overschrijf de geschiedenis
de inhoud van het bestand.
-p Voer geschiedenisvervanging uit op het volgende betoogt en geef het resultaat weer
de standaarduitvoer. Slaat de resultaten niet op in de geschiedenislijst. Elk
arg moet worden aangehaald om de normale uitbreiding van de geschiedenis uit te schakelen.
-s Bewaar het betoogt in de geschiedenislijst als één item. Het laatste commando binnen
de geschiedenislijst wordt verwijderd vóór de betoogt zijn toegevoegd.

Indien de ZIJN TIJDFORMAAT variabele is ingesteld, wordt de bijbehorende tijdstempelinformatie weergegeven
elk geschiedenisitem wordt naar het geschiedenisbestand geschreven, gemarkeerd met het geschiedeniscommentaar
karakter. Wanneer het geschiedenisbestand wordt gelezen, beginnen de regels met het geschiedeniscommentaar
teken onmiddellijk gevolgd door een cijfer worden geïnterpreteerd als tijdstempels voor de
vorige geschiedenislijn. De retourwaarde is 0 tenzij er een ongeldige optie is
aangetroffen, er treedt een fout op tijdens het lezen of schrijven van het geschiedenisbestand, een ongeldig
compenseren wordt als argument aangevoerd -d, of de geschiedenisuitbreiding geleverd als
argument voor -p mislukt.

vacatures [-Inprs] [ taakspec ...]
vacatures -x commando [ betoogt ...]
Het eerste formulier geeft een overzicht van de actieve vacatures. De opties hebben de volgende betekenis:
-l Vermeld proces-ID's naast de normale informatie.
-n Geef alleen informatie weer over taken waarvan de status sinds de gebruiker is gewijzigd
laatst op de hoogte werd gesteld van hun status.
-p Vermeld alleen de proces-ID van de procesgroepleider van de taak.
-r Alleen lopende taken weergeven.
-s Alleen gestopte taken weergeven.

If taakspec wordt gegeven, wordt de uitvoer beperkt tot informatie over die taak. De
retourstatus is 0, tenzij er een ongeldige optie wordt aangetroffen of een ongeldige optie taakspec is
geleverde.

Indien de -x optie wordt meegeleverd, vacatures vervangt elke taakspec gevonden in commando or betoogt
met de bijbehorende procesgroep-ID, en wordt uitgevoerd commando het passeren betoogt,
de exit-status teruggeven.

doden [-s sigspec | -n teken | -sigspec] [pid | taakspec
doden -l [sigspec | exit_status]
Verzend het signaal met de naam by sigspec or teken naar de processen genoemd door pid or
taakspec. sigspec is een signaalnaam die niet hoofdlettergevoelig is, zoals SIGKILL (met of
zonder de SIG voorvoegsel) of een signaalnummer; teken is een signaalnummer. Als sigspec
is niet aanwezig, dan SIGTERM wordt verondersteld. Een betoog van -l vermeldt de signaalnamen.
Als er argumenten worden gegeven wanneer -l wordt gegeven, de namen van de signalen
die overeenkomen met de argumenten worden vermeld en de retourstatus is 0. The
exit_status argument voor -l is een getal dat een signaalnummer of de
exit-status van een proces dat wordt beëindigd door een signaal. doden retourneert waar als er minstens één is
signaal is succesvol verzonden, of false als er een fout optreedt of een ongeldige optie is
tegengekomen.

laten arg [arg
Elke arg is een rekenkundige uitdrukking die moet worden geëvalueerd (zie REKENKUNDIG EVALUATIE
boven). Als de laatste arg evalueert naar 0, laten retourneert 1; Anders wordt 0 geretourneerd.

lokaal [optie] [naam[=waarde] ...]
Voor elk argument wordt een lokale variabele genoemd naam wordt gemaakt en toegewezen waarde. De
optie kan elk van de opties zijn die worden geaccepteerd door verklaren. Wanneer lokaal wordt gebruikt binnen een
functie, het veroorzaakt de variabele naam om een ​​zichtbare reikwijdte te hebben die daartoe beperkt is
functie en zijn kinderen. Zonder operanden, lokaal schrijft een lijst met lokale
variabelen naar de standaarduitvoer. Het is een fout om te gebruiken lokaal wanneer niet binnen a
functie. De retourstatus is 0 tenzij lokaal wordt gebruikt buiten een functie, an
ongeldig naam wordt geleverd, of naam is een alleen-lezen variabele.

uitloggen Verlaat een login-shell.

mapbestand [-n tellen] [-O herkomst] [-s tellen] [-t] [-u fd] [-C Bel terug] [-c quantum] [reeks]
leesarray [-n tellen] [-O herkomst] [-s tellen] [-t] [-u fd] [-C Bel terug] [-c quantum]
[reeks]
Lees regels uit de standaardinvoer in de geïndexeerde arrayvariabele reeks, Of
bestandsdescriptor fd indien de -u optie wordt meegeleverd. De variabele KAARTBESTAND is de
verzuim reeks. Opties, indien aanwezig, hebben de volgende betekenis:
-n Kopieer hoogstens tellen lijnen. Als tellen is 0, dan worden alle regels gekopieerd.
-O Begin met toewijzen aan reeks bij index herkomst. De standaardindex is 0.
-s Gooi de eerste weg tellen lijnen gelezen.
-t Verwijder een afsluitende nieuwe regel van elke gelezen regel.
-u Lees regels uit de bestandsdescriptor fd in plaats van de standaardinvoer.
-C Schatten Bel terug elke keer quantum regels worden gelezen. De -c optie specificeert
quantum.
-c Geef het aantal regels op dat tussen elk gesprek moet worden gelezen Bel terug.

If -C is gespecificeerd zonder -c, het standaardkwantum is 5000. Wanneer Bel terug is
geëvalueerd, wordt de index geleverd van het volgende array-element dat moet worden toegewezen en
de regel die aan dat element moet worden toegewezen als aanvullende argumenten. Bel terug is
geëvalueerd nadat de regel is gelezen, maar voordat het array-element is toegewezen.

Indien niet voorzien van een expliciete herkomst, mapbestand zal wissen reeks voor het toewijzen
aan.

mapbestand retourneert succesvol tenzij er een ongeldige optie of optieargument is
geleverd, reeks ongeldig of niet-toewijsbaar is, of als reeks is geen geïndexeerde array.

popd [-n] [+n] [-n]
Verwijdert vermeldingen uit de mappenstapel. Zonder argumenten wordt de bovenkant verwijderd
directory van de stapel, en voert een cd naar de nieuwe bovenste map. Argumenten,
indien aanwezig, hebben de volgende betekenissen:
-n Onderdrukt de normale mapwijziging bij het verwijderen van mappen uit de
stapel, zodat alleen de stapel wordt gemanipuleerd.
+n Verwijdert de ne invoer vanaf de linkerkant van de lijst weergegeven door dirs,
beginnend met nul. Bijvoorbeeld: ``popd +0'' verwijdert de eerste map,
``popd +1'' de tweede.
-n Verwijdert de ne invoer vanaf de rechterkant van de lijst weergegeven door dirs,
beginnend met nul. Bijvoorbeeld: ``popd -0'' verwijdert de laatste map,
``popd -1'' de voorlaatste.

Indien de popd opdracht succesvol is, a dirs wordt ook uitgevoerd, en de terugkeer
stand is 0. popd retourneert false als er een ongeldige optie wordt aangetroffen, de map
stack is leeg, er is een niet-bestaand directorystack-item opgegeven, of de directory
verandering mislukt.

printf [-v var] formaat [argumenten]
Schrijf het opgemaakte argumenten naar de standaarduitvoer onder controle van de
formaat. De -v optie zorgt ervoor dat de uitvoer aan de variabele wordt toegewezen var liever
dan dat het wordt afgedrukt op de standaarduitvoer.

De formaat is een tekenreeks die drie soorten objecten bevat: gewoon
karakters, die eenvoudigweg worden gekopieerd naar standaarduitvoer, karakter-escape-reeksen,
die worden geconverteerd en gekopieerd naar de standaarduitvoer, en formaatspecificaties,
elk hiervan veroorzaakt het afdrukken van de volgende opeenvolgende argument. In aanvulling op de
standaard printf(1) formaatspecificaties, printf interpreteert het volgende
extensies:
%b oorzaken printf om backslash-escape-reeksen in de overeenkomstige uit te breiden
argument (behalve dat \c beëindigt de uitvoer, backslashes naar binnen \', \" en \?
worden niet verwijderd, en octale ontsnappingen beginnen met \0 kan maximaal vier bevatten
cijfers).
%q oorzaken printf om het overeenkomstige uit te voeren argument in een formaat dat kan
hergebruikt als shell-invoer.
%(datumfmt)T
oorzaken printf om de datum-tijdreeks uit te voeren die het resultaat is van het gebruik datumfmt as
een formatstring voor tijd(3). De corresponderende argument is een geheel getal
vertegenwoordigt het aantal seconden sinds het tijdperk. Twee bijzondere argumenten
waarden kunnen worden gebruikt: -1 vertegenwoordigt de huidige tijd, en -2 vertegenwoordigt de
keer dat de granaat werd aangeroepen. Als er geen argument is opgegeven, gedraagt ​​de conversie zich
alsof -1 gegeven was. Dit is een uitzondering op het gebruikelijke printf gedrag.

Argumenten voor niet-tekenreeksformaatspecificaties worden behandeld als C-constanten, behalve dat a
Een voorlopend plus- of minteken is toegestaan, en als het hoofdteken een enkelvoudige of is
dubbel aanhalingsteken, de waarde is de ASCII-waarde van het volgende teken.

De formaat wordt hergebruikt als dat nodig is om alles te consumeren argumenten. Indien de formaat
vereist meer argumenten dan worden geleverd, gelden de extra formaatspecificaties
alsof er een nulwaarde of nultekenreeks, al naargelang het geval, is opgegeven. De terugkeer
de waarde is nul bij succes, niet-nul bij mislukking.

pushd [-n] [+n] [-n]
pushd [-n] [dir]
Voegt een map toe aan de bovenkant van de mappenstapel, of roteert de stapel, waardoor
de nieuwe bovenkant van de stapel, de huidige werkmap. Zonder argumenten,
wisselt de bovenste twee mappen uit en retourneert 0, tenzij de mappenstapel dat is
leeg. Argumenten, indien opgegeven, hebben de volgende betekenis:
-n Onderdrukt de normale mapwijziging bij het toevoegen van mappen aan de
stapel, zodat alleen de stapel wordt gemanipuleerd.
+n Roteert de stapel zodat de nth map (geteld vanaf de linkerkant van de
lijst getoond door dirs, beginnend met nul) staat bovenaan.
-n Roteert de stapel zodat de nth map (geteld vanaf de rechterkant van de
lijst getoond door dirs, beginnend met nul) staat bovenaan.
dir Voegt dir naar de mappenstapel bovenaan, waardoor dit de nieuwe current
werkmap alsof deze als argument voor de cd
ingebouwd.

Indien de pushd opdracht succesvol is, a dirs wordt ook uitgevoerd. Als het eerste formulier
is gebruikt, pushd retourneert 0 tenzij de cd naar dir mislukt. Met het tweede formulier pushd
retourneert 0 tenzij de mappenstapel leeg is, een niet-bestaande mappenstapel
element is opgegeven, of de map verandert naar de opgegeven nieuwe stroom
map mislukt.

pwd [-LP]
Druk de absolute padnaam van de huidige werkmap af. De padnaam wordt afgedrukt
bevat geen symbolische links als de -P optie wordt geleverd of de -o Fysiek optie
aan de reeks ingebouwde opdracht is ingeschakeld. Als de -L optie wordt gebruikt, de padnaam
afgedrukt kan symbolische links bevatten. De retourstatus is 0 tenzij er een fout optreedt
tijdens het lezen van de naam van de huidige map of er wordt een ongeldige optie opgegeven.

dit artikel lezen [-ers] [-a een naam] [-d delim] [-i tekst] [-n nchars] [-N nchars] [-p prompt] [-t
time-out] [-u fd] [naam
Er wordt één regel gelezen uit de standaardinvoer of uit de bestandsdescriptor fd geleverde
als argument voor de -u optie, en het eerste woord wordt aan het eerste toegewezen naam,
het tweede woord tot het tweede naam, enzovoort, met overgebleven woorden en hun
tussenliggende scheidingstekens toegewezen aan de laatste naam. Als er minder woorden worden gelezen
uit de invoerstroom dan namen, krijgen de overige namen lege waarden toegewezen.
De tekens in IFS worden gebruikt om de regel in woorden te splitsen met dezelfde regels
de schaal gebruikt voor uitbreiding (hierboven beschreven onder Woord Splitsen). De terugslag
karakter (\) kan worden gebruikt om een ​​speciale betekenis voor het volgende gelezen teken te verwijderen
en voor lijnvoortzetting. Opties, indien aanwezig, hebben de volgende betekenis:
-a een naam
De woorden worden toegewezen aan opeenvolgende indices van de arrayvariabele een naam,
beginnend bij 0. een naam wordt uitgeschakeld voordat er nieuwe waarden worden toegewezen. Ander
naam argumenten worden genegeerd.
-d delim
Het eerste karakter van delim wordt eerder gebruikt om de invoerlijn te beëindigen
dan nieuwe regel.
-e Als de standaardinvoer afkomstig is van een terminal, readline (Zie LEES REGEL
hierboven) wordt gebruikt om de lijn te verkrijgen. Readline gebruikt de huidige (of standaard,
als lijnbewerking niet eerder actief was) bewerkingsinstellingen.
-i tekst
If readline wordt gebruikt om de regel te lezen, tekst wordt in de bewerking geplaatst
buffer voordat het bewerken begint.
-n nchars
dit artikel lezen keert terug na het lezen nchars karakters in plaats van te wachten op een
volledige invoerregel, maar respecteer een scheidingsteken als er minder dan is nchars
tekens worden vóór het scheidingsteken gelezen.
-N nchars
dit artikel lezen keert terug na nauwkeurig lezen nchars karakters in plaats van te wachten
een volledige invoerregel, tenzij EOF wordt aangetroffen of dit artikel lezen time-out.
Scheidingstekens die u in de invoer tegenkomt, worden niet speciaal behandeld
niet veroorzaken dit artikel lezen terug te keren tot nchars karakters worden gelezen.
-p prompt
Display prompt op standaardfout, zonder een afsluitende nieuwe regel, ervoor
probeert invoer te lezen. De prompt wordt alleen weergegeven als de invoer is
afkomstig van een terminal.
-r Backslash fungeert niet als ontsnappingskarakter. Er wordt rekening gehouden met de backslash
deel uitmaken van de lijn. In het bijzonder is het mogelijk dat een backslash-nieuweregelpaar dat niet is
gebruikt als lijnvoortzetting.
-s Stille modus. Als invoer afkomstig is van een terminal, worden tekens niet herhaald.
-t time-out
Veroorzaken dit artikel lezen om een ​​time-out te geven en een fout te retourneren als een volledige invoerregel (of een
opgegeven aantal tekens) wordt niet gelezen time-out seconden. time-out
kan een decimaal getal zijn met een fractioneel gedeelte na de decimaal
punt. Deze optie is alleen effectief als dit artikel lezen leest invoer van a
terminal-, pipe- of ander speciaal bestand; het heeft geen effect bij het lezen van
reguliere bestanden. Als dit artikel lezen time-out, dit artikel lezen slaat elke ingelezen gedeeltelijke invoer op
de opgegeven variabele naam. Indien time-out is 0, dit artikel lezen keert onmiddellijk terug,
zonder te proberen gegevens te lezen. De uitgangsstatus is 0 als er invoer beschikbaar is
op de opgegeven bestandsdescriptor, anders niet nul. De uitgangsstatus is
groter dan 128 als de time-out wordt overschreden.
-u fd Lees de invoer van de bestandsdescriptor fd.

Zo nee namen worden geleverd, wordt de gelezen regel aan de variabele toegewezen ANTWOORD. De
retourcode is nul, tenzij end-of-file wordt aangetroffen, dit artikel lezen time-out (waarin
als de retourcode groter is dan 128), een fout bij het toewijzen van een variabele (zoals
toewijzen aan een alleen-lezen variabele) plaatsvindt, of er wordt een ongeldige bestandsdescriptor opgegeven
als argument voor -u.

alleen lezen [-aAf] [-p] [naam[=woord] ...]
Het gegeven namen zijn gemarkeerd als alleen-lezen; de waarden hiervan namen mag niet worden gewijzigd
door latere opdracht. Als de -f optie wordt geleverd, de functies
overeenkomt met de namen zijn zo gemarkeerd. De -a optie beperkt de variabelen tot
geïndexeerde arrays; de -A optie beperkt de variabelen tot associatieve arrays. Als
beide opties worden geleverd, -A heeft voorrang. Als Nee naam er worden argumenten gegeven, of
indien de -p optie wordt geleverd, wordt een lijst met alle alleen-lezen namen afgedrukt. De andere
opties kunnen worden gebruikt om de uitvoer te beperken tot een subset van de set alleen-lezen
namen. De -p optie zorgt ervoor dat de uitvoer wordt weergegeven in een formaat dat opnieuw kan worden gebruikt
als invoer. Als een variabelenaam wordt gevolgd door =woord, de waarde van de variabele is
ingesteld op woord. De retourstatus is 0 tenzij er een ongeldige optie wordt aangetroffen, één
van de namen is geen geldige shellvariabelenaam, of -f wordt geleverd met een naam dat
is geen functie.

terugkeer [n]
Zorgt ervoor dat een functie stopt met uitvoeren en de waarde retourneert die is opgegeven door n zijn
beller. Als n wordt weggelaten, is de retourstatus die van de laatst uitgevoerde opdracht
het functielichaam. Als terugkeer wordt gebruikt buiten een functie, maar tijdens de uitvoering van a
schrift van de . ((bron)) commando, zorgt het ervoor dat de shell stopt met het uitvoeren ervan
script en retourneer beide n of de afsluitstatus van de laatste opdracht die binnen is uitgevoerd
het script als de afsluitstatus van het script. Als n wordt geleverd, is de retourwaarde
de minst significante 8 bits. De retourstatus is niet nul als terugkeer is aangeleverd
een niet-numeriek argument, of wordt buiten een functie gebruikt en niet tijdens de uitvoering van a
script door . or (bron). Elke opdracht die is gekoppeld aan de RETURN val wordt uitgevoerd
voordat de uitvoering wordt hervat na de functie of het script.

reeks [--abefhkmnptuvxBCEHPT] [-o optienaam] [arg
reeks [+abefhkmnptuvxBCEHPT] [+o optienaam] [arg
Zonder opties worden de naam en waarde van elke shellvariabele weergegeven in a
formaat dat kan worden hergebruikt als invoer voor het instellen of resetten van de momenteel ingestelde
variabelen. Alleen-lezen variabelen kunnen niet opnieuw worden ingesteld. In posix modus, alleen shell
variabelen worden vermeld. De uitvoer wordt gesorteerd op basis van de huidige landinstelling. Wanneer
opties zijn opgegeven, worden shell-attributen in- of uitgeschakeld. Eventuele resterende argumenten
na optieverwerking worden behandeld als waarden voor de positionele parameters en zijn
toegewezen, in volgorde, aan $1, $2, ... $n. Opties, indien gespecificeerd, hebben het volgende
betekenissen:
-a Markeer automatisch variabelen en functies die worden gewijzigd of gemaakt
voor export naar de omgeving van volgende opdrachten.
-b Rapporteer de status van beëindigde achtergrondtaken onmiddellijk, in plaats van
vóór de volgende primaire prompt. Dit is alleen effectief als er sprake is van taakcontrole
ingeschakeld.
-e Verlaat onmiddellijk als a pijpleiding (die uit één enkele kan bestaan simpel
commando), The lijstOf een samenstelling commando (Zie SHELL GRAMMATICA hierboven), uitgangen
met een niet-nulstatus. De shell wordt niet afgesloten als de opdracht mislukt
maakt deel uit van de commandolijst onmiddellijk na a en or tot zoekwoord,
onderdeel van de test na de if or elif gereserveerde woorden, onderdeel van welke dan ook
opdracht uitgevoerd in a && or || lijst behalve de opdracht die volgt op de finale
&& or ||, elk commando in een pijplijn behalve de laatste, of als het commando is
retourwaarde wordt omgekeerd met !. Als een samengesteld commando anders dan a
subshell retourneert een status die niet nul is, omdat een opdracht is mislukt while -e was
als het genegeerd wordt, verlaat de shell niet. Een val op ERR, indien ingesteld, wordt uitgevoerd
voordat de schaal eruit gaat. Deze optie is van toepassing op de shell-omgeving en
elke subshell-omgeving afzonderlijk (zie COMMAND EXECUTIE MILIEU
hierboven), en kan ervoor zorgen dat subshells worden afgesloten voordat alle opdrachten zijn uitgevoerd
in de onderschaal.

Als een samengestelde opdracht of shell-functie wordt uitgevoerd in een context waar -e is
wordt genegeerd, wordt geen van de commando's uitgevoerd binnen het samengestelde commando of
functielichaam zal worden beïnvloed door de -e instelling, zelfs als -e is ingesteld en een
opdracht retourneert een foutstatus. Als het een samengestelde opdracht of shell-functie is
sets -e terwijl het wordt uitgevoerd in een context waarin -e wordt genegeerd, zal die instelling dat wel doen
heeft geen enkel effect totdat het samengestelde commando of het commando bevattende
de functieaanroep is voltooid.
-f Schakel padnaamuitbreiding uit.
-h Onthoud de locatie van opdrachten terwijl ze worden opgezocht voor uitvoering.
Dit is standaard ingeschakeld.
-k Alle argumenten in de vorm van toewijzingsinstructies worden in de
omgeving voor een opdracht, niet alleen de opdrachten die voorafgaan aan de opdrachtnaam.
-m Monitormodus. Taakbeheer is ingeschakeld. Deze optie is standaard ingeschakeld voor
interactieve shells op systemen die dit ondersteunen (zie JOB CONTROL boven). Alle
processen draaien in een aparte procesgroep. Wanneer een achtergrondbaan
voltooid, drukt de shell een regel af met daarin de afsluitstatus.
-n Lees opdrachten, maar voer ze niet uit. Dit kan worden gebruikt om een ​​schaal te controleren
script voor syntaxisfouten. Dit wordt genegeerd door interactieve shells.
-o optienaam
De optienaam kan een van de volgende zijn:
alleexport
Hetzelfde als -a.
beugeluitbreiden
Hetzelfde als -B.
emacs Gebruik een opdrachtregelbewerkingsinterface in emacs-stijl. Dit is ingeschakeld
standaard wanneer de shell interactief is, tenzij de shell dat wel is
begonnen met de --geen bewerking keuze. Dit heeft ook gevolgen voor de redactie
interface gebruikt dit artikel lezen -e.
fout Hetzelfde als -e.
fout
Hetzelfde als -E.
functie
Hetzelfde als -T.
hasj Hetzelfde als -h.
zijnuitbreiden
Hetzelfde als -H.
geschiedenis Schakel de opdrachtgeschiedenis in, zoals hierboven beschreven onder GESCHIEDENIS. Deze
optie is standaard ingeschakeld in interactieve shells.
negeren
Het effect is alsof het shellcommando ``IGNOREEOF=10'' was geweest
uitgevoerd (zie Shell Variabelen bovenstaande).
trefwoord Hetzelfde als -k.
controleren Hetzelfde als -m.
geen gek
Hetzelfde als -C.
noexec Hetzelfde als -n.
noglob Hetzelfde als -f.
geenlog Momenteel genegeerd.
de hoogte Hetzelfde als -b.
zelfstandig naamwoord Hetzelfde als -u.
eencmd Hetzelfde als -t.
Fysiek
Hetzelfde als -P.
pijpfout
Indien ingesteld, is de retourwaarde van een pijplijn de waarde van de laatste
(meest rechtse) opdracht om af te sluiten met een status die niet nul is, of nul als alles is
opdrachten in de pijplijn worden succesvol afgesloten. Deze optie is
standaard uitgeschakeld.
posix Verander het gedrag van slaan waarbij de standaardbewerking verschilt
van de POSIX-standaard zodat deze overeenkomt met de standaard (posix mode). Zien
ONTDEK OOK hieronder voor een verwijzing naar een document waarin wordt beschreven hoe posix
modus beïnvloedt het gedrag van bash.
bevoorrecht
Hetzelfde als -p.
breedsprakig Hetzelfde als -v.
vi Gebruik een opdrachtregelbewerkingsinterface in vi-stijl. Dit heeft ook invloed
de bewerkingsinterface die wordt gebruikt dit artikel lezen -e.
xspoor Hetzelfde als -x.
If -o wordt geleverd met nr optienaam, de waarden van de huidige opties
zijn afgedrukt. Als +o wordt geleverd met nr optienaam, een serie van reeks
opdrachten om de huidige optie-instellingen opnieuw te maken, worden weergegeven op het
standaard uitvoer.
-p Turn on bevoorrecht modus. In deze modus wordt de $ENV en $BASH_ENV bestanden zijn
niet verwerkt, shell-functies worden niet overgenomen van de omgeving, en
de SCHELLOPTS, BASHOPTEN, CDPATH en GLOBIGNORE variabelen, als ze verschijnen
in het milieu worden genegeerd. Als de shell wordt gestart met de
effectieve gebruikers- (groeps)-ID is niet gelijk aan de echte gebruikers- (groeps)-ID, en de -p
optie niet wordt aangeboden, worden deze acties ondernomen en de effectieve gebruikers-ID
is ingesteld op het echte gebruikers-ID. Als de -p optie wordt geleverd bij het opstarten, de
effectieve gebruikers-ID wordt niet opnieuw ingesteld. Als u deze optie uitschakelt, wordt de
effectieve gebruikers- en groeps-ID's moeten worden ingesteld op de echte gebruikers- en groeps-ID's.
-t Sluit af na het lezen en uitvoeren van één commando.
-u Behandel niet-ingestelde variabelen en parameters anders dan de speciale parameters "@"
en "*" als een fout bij het uitvoeren van parameteruitbreiding. Als er sprake is van uitbreiding
geprobeerd op een niet-ingestelde variabele of parameter, drukt de shell een fout af
bericht en, als het niet interactief is, wordt het afgesloten met een status die niet nul is.
-v Print shell-invoerregels terwijl ze worden gelezen.
-x Na het uitbreiden van elk simpel commando, For commando, geval commando, kiezen
commando of rekenkunde For commando, geef de uitgebreide waarde weer van PS4,
gevolgd door het commando en de uitgebreide argumenten of bijbehorende woordenlijst.
-B De schaal voert brace-expansie uit (zie Beugel Uitbreiding boven). Dit is aan
standaard.
-C Indien ingesteld, slaan overschrijft geen bestaand bestand met de >, >& en <>
omleidingsoperatoren. Dit kan worden overschreven bij het maken van uitvoerbestanden
door gebruik te maken van de omleidingsoperator >| in plaats van >.
-E Indien ingesteld, wordt elke val ingeschakeld ERR wordt geërfd door shell-functies, commando
vervangingen en opdrachten die worden uitgevoerd in een subshell-omgeving. De ERR
trap wordt in dergelijke gevallen normaal gesproken niet geërfd.
-H Enable ! vervanging van stijlgeschiedenis. Deze optie is standaard ingeschakeld wanneer
de schaal is interactief.
-P Indien ingesteld, lost de shell geen symbolische koppelingen op bij het uitvoeren van opdrachten
zoals cd die de huidige werkmap wijzigen. Het maakt gebruik van het fysieke
mapstructuur in plaats daarvan. Standaard, slaan volgt de logische keten van
mappen bij het uitvoeren van opdrachten die de huidige map wijzigen.
-T Indien ingesteld, worden eventuele vallen ingeschakeld DEBUG en RETURN worden geërfd door shell-functies,
opdrachtvervangingen en opdrachten die worden uitgevoerd in een subshell-omgeving.
De DEBUG en RETURN vallen worden in dergelijke gevallen normaal gesproken niet geërfd.
-- Als er geen argumenten volgen op deze optie, dan zijn de positionele parameters dat wel
uitgeschakeld. Anders worden de positionele parameters ingesteld op de args, zelfs als
sommige beginnen met een -.
- Signaleer het einde van de opties, zorg ervoor dat alle resterende opties bestaan args toe te wijzen aan de
positionele parameters. De -x en -v opties zijn uitgeschakeld. Als er zijn
geen args blijven de positionele parameters ongewijzigd.

De opties zijn standaard uitgeschakeld, tenzij anders aangegeven. + gebruiken in plaats van -
zorgt ervoor dat deze opties worden uitgeschakeld. De opties kunnen ook worden opgegeven als
argumenten voor een aanroep van de shell. De huidige set opties kan worden gevonden
in $-. De retourstatus is altijd waar, tenzij er een ongeldige optie wordt aangetroffen.

verschuiving [n]
De positionele parameters van n+1 ... worden hernoemd naar $1 .... parameters
vertegenwoordigd door de cijfers $# naar beneden $#-n+1 zijn uitgeschakeld. n moet een niet-negatief zijn
getal kleiner dan of gelijk aan $#. Indien n is 0, er worden geen parameters gewijzigd. Als n is
niet gegeven, wordt aangenomen dat dit 1 is. Als n groter dan $#, het positionele
parameters worden niet gewijzigd. De retourstatus is groter dan nul als n is groter
neem contact $# of minder dan nul; anders 0.

winkelt [-pqsu] [-o] [optnaam
Schakel de waarden in van instellingen die het optionele shell-gedrag regelen. De instellingen
kunnen de onderstaande zijn, of, als de -o optie wordt gebruikt, de beschikbare opties
met de -o optie voor de reeks ingebouwde opdracht. Zonder opties, of met de -p
optie wordt een lijst met alle instelbare opties weergegeven, met een indicatie of
of niet, elk is ingesteld. De -p optie zorgt ervoor dat de uitvoer wordt weergegeven in een vorm die dat wel kan
hergebruikt worden als input. Andere opties hebben de volgende betekenis:
-s Schakel elk in (instellen). optnaam.
-u Schakel elk uit (uitgeschakeld). optnaam.
-q Onderdrukt de normale uitvoer (stille modus); de retourstatus geeft aan of
de optnaam is ingesteld of uitgeschakeld. Indien meerdere optnaam argumenten worden gegeven met
-q, de retourstatus is nul als alles is optnamen zijn ingeschakeld; niet-nul
anders.
-o Beperkt de waarden van optnaam zijn die gedefinieerd voor de -o optie voor de
reeks ingebouwd.

Als een van beide -s or -u wordt gebruikt met nr optnaam argumenten, winkelt laat alleen die zien
opties die respectievelijk zijn in- of uitgeschakeld. Tenzij anders vermeld, is de winkelt
opties zijn standaard uitgeschakeld (niet ingesteld).

De retourstatus bij het aanbieden van opties is nul als ze allemaal zijn optnamen zijn ingeschakeld, niet-
anders nul. Bij het in- of uitschakelen van opties is de retourstatus nul
tenzij een optnaam is geen geldige shell-optie.

De lijst van winkelt opties zijn:

autocd Indien ingesteld, wordt een opdrachtnaam die de naam van een directory is, uitgevoerd alsof dit het geval is
waren het argument voor de cd commando. Deze optie wordt alleen gebruikt door
interactieve schelpen.
cdbare_vars
Indien ingesteld, een argument voor de cd ingebouwde opdracht die geen map is
Er wordt aangenomen dat dit de naam is van een variabele waarvan de waarde de map is die moet worden gewijzigd
aan.
cdspel Indien ingesteld, kunnen kleine fouten in de spelling van een directorycomponent in a cd
opdracht zal worden gecorrigeerd. De gecontroleerde fouten worden omgezet
karakters, een ontbrekend karakter en één karakter te veel. Als een
correctie wordt gevonden, de gecorrigeerde bestandsnaam wordt afgedrukt en het commando
opbrengst. Deze optie wordt alleen gebruikt door interactieve shells.
checkhash
Indien ingesteld, slaan controleert of een commando gevonden in de hashtabel al eerder bestaat
proberen het uit te voeren. Als een gehasht commando niet meer bestaat, een normaal pad
er wordt gezocht.
controleopdrachten
Indien ingesteld, slaan geeft de status weer van alle eerder gestopte en actieve taken
een interactieve shell verlaten. Als er taken worden uitgevoerd, veroorzaakt dit de
De uitgang moet worden uitgesteld totdat een tweede uitgang wordt geprobeerd zonder tussenkomst
opdracht (zie JOB CONTROL boven). De shell stelt het eventuele afsluiten altijd uit
banen worden stopgezet.
controleerwingrootte
Indien ingesteld, slaan controleert na elk commando de venstergrootte en, indien nodig,
werkt de waarden bij van LIJNEN en COLUMNS.
cmdist Indien ingesteld, slaan probeert alle regels van een opdracht met meerdere regels op te slaan in de
dezelfde geschiedenisinvoer. Dit maakt het eenvoudig opnieuw bewerken van opdrachten met meerdere regels mogelijk.
comp31
Indien ingesteld, slaan verandert zijn gedrag ten opzichte van versie 3.1
geciteerde argumenten aan de [[ voorwaardelijke commando's =~ operator en locale-
specifieke tekenreeksvergelijking bij gebruik van de [[ voorwaardelijke commando's < en >
exploitanten. Bash-versies vóór bash-4.1 gebruiken ASCII-collatie en
strcmp(3); bash-4.1 en later gebruiken de sorteervolgorde van de huidige landinstelling
en strcoll(3).
comp32
Indien ingesteld, slaan verandert zijn gedrag ten opzichte van versie 3.2
locale-specifieke tekenreeksvergelijking bij gebruik van de [[ voorwaardelijke commando's <
en > operatoren (zie vorig item).
comp40
Indien ingesteld, slaan verandert zijn gedrag ten opzichte van versie 4.0
locale-specifieke tekenreeksvergelijking bij gebruik van de [[ voorwaardelijke commando's <
en > operators (zie beschrijving van comp31) en het effect van
een commandolijst onderbreken. Bash-versies 4.0 en hoger onderbreken het
lijst alsof de shell de interrupt heeft ontvangen; eerdere versies gaan door
met het volgende commando in de lijst.
comp41
Indien ingesteld, slaan, wanneer binnen posix modus, behandelt een enkel aanhalingsteken in een dubbel aanhalingsteken
parameteruitbreiding als een speciaal teken. De enkele aanhalingstekens moeten overeenkomen
(een even getal) en de tekens tussen de enkele aanhalingstekens zijn
beschouwd als geciteerd. Dit is het gedrag van de posix-modus tot en met versie 4.1.
Het standaard bash-gedrag blijft hetzelfde als in eerdere versies.
comp42
Indien ingesteld, slaan verwerkt de vervangende string niet in het patroon
vervangingswoorduitbreiding met behulp van het verwijderen van aanhalingstekens.
complete_fullquote
Indien ingesteld, slaan citeert alle shell-metatekens in bestandsnamen en directory
namen bij het uitvoeren van voltooiing. Indien niet ingesteld, slaan verwijdert metatekens
zoals het dollarteken uit de reeks tekens waarin tussen aanhalingstekens wordt geciteerd
voltooide bestandsnamen wanneer deze metatekens in de shell-variabele verschijnen
verwijzingen in in te vullen woorden. Dit betekent dat de dollar zich aanmeldt
namen van variabelen die zich uitbreiden naar mappen worden niet tussen aanhalingstekens geplaatst; echter geen
dollartekens die in bestandsnamen voorkomen, worden ook niet tussen aanhalingstekens geplaatst. Dit is
alleen actief wanneer bash backslashes gebruikt om voltooide bestandsnamen te citeren.
Deze variabele is standaard ingesteld, wat het standaard bash-gedrag is
versies tot en met 4.2.
direct uitbreiden
Indien ingesteld, slaan vervangt mapnamen door de resultaten van woorduitbreiding
bij het voltooien van de bestandsnaam. Hierdoor verandert de inhoud van de
leesregelbewerkingsbuffer. Indien niet ingesteld, slaan probeert te behouden wat de
gebruiker getypt.
verspellen
Indien ingesteld, slaan probeert spellingcorrectie op mapnamen tijdens het woord
voltooiing als de aanvankelijk opgegeven mapnaam niet bestaat.
stippellijn Indien ingesteld, slaan bevat bestandsnamen die beginnen met een `.' bij de resultaten van
padnaam uitbreiding.
uitvoeren
Indien ingesteld, zal een niet-interactieve shell niet afsluiten als deze het bestand niet kan uitvoeren
opgegeven als argument voor de exec ingebouwde opdracht. Een interactieve schaal
verlaat niet als exec mislukt.
expand_aliassen
Indien ingesteld, worden aliassen uitgebreid zoals hierboven beschreven onder ALIASES. Deze optie
is standaard ingeschakeld voor interactieve shells.
extdebug
Indien ingesteld, wordt gedrag dat bedoeld is voor gebruik door debuggers ingeschakeld:
1. De -F optie voor de verklaren ingebouwd geeft de naam van het bronbestand weer
en het regelnummer dat overeenkomt met elke functienaam die als
argument.
2. Als de opdracht uitgevoerd door de DEBUG trap retourneert een waarde die niet nul is, de
volgende commando wordt overgeslagen en niet uitgevoerd.
3. Als de opdracht uitgevoerd door de DEBUG trap retourneert een waarde van 2, en de
shell wordt uitgevoerd in een subroutine (een shell-functie of een shell
script uitgevoerd door de . or (bron) ingebouwde), een oproep naar terugkeer is
gesimuleerd.
4. BASH_ARGC en BASH_ARGV worden bijgewerkt zoals beschreven in hun
beschrijvingen hierboven.
5. Functietracering is ingeschakeld: opdrachtvervanging, shell-functies,
en subshells aangeroepen met ( commando ) erven de DEBUG en RETURN
vallen.
6. Foutopsporing is ingeschakeld: opdrachtvervanging, shell-functies,
en subshells aangeroepen met ( commando ) erven de ERR houden.
extglob Indien ingesteld, worden de uitgebreide patroonaanpassingsfuncties hierboven beschreven onder
Padnaam Uitbreiding zijn ingeschakeld.
uittreksel
Indien ingesteld, $'snaar'en $"snaar" Het citeren wordt binnen uitgevoerd ${parameter}
uitbreidingen tussen dubbele aanhalingstekens. Deze optie is standaard ingeschakeld.
falenglob
Indien ingesteld, patronen die niet overeenkomen met de bestandsnamen tijdens het uitbreiden van de padnaam
resulteren in een expansiefout.
force_figure
Indien ingesteld, worden de achtervoegsels gespecificeerd door de FIGNEER shell variabele veroorzaakt woorden
worden genegeerd bij het voltooien van woorden, zelfs als de genegeerde woorden dat wel zijn
de enige mogelijke voltooiing. Zien SHELL VARIABELEN hierboven voor een beschrijving
of FIGNEER. Deze optie is standaard ingeschakeld.
globale reeksen
Indien ingesteld, worden bereikexpressies gebruikt in haakjesexpressies voor patroonovereenkomsten (zie
Patronen Bijpassende hierboven) gedragen zich alsof ze in de traditionele C-locale zijn
vergelijkingen uitvoeren. Dat wil zeggen, de verzamelvolgorde van de huidige landinstelling
wordt dus geen rekening mee gehouden b zal niet samenvoegen tussen A en B en
hoofdletters en kleine letters ASCII-tekens worden samengevoegd.
wereldster
Indien ingesteld: het patroon ** gebruikt in de context van een padnaamuitbreiding, komt overeen met alles
bestanden en nul of meer mappen en submappen. Als het patroon dat is
gevolgd door een /, komen alleen mappen en submappen overeen.
gnu_errfmt
Indien ingesteld, worden shell-foutmeldingen geschreven in het standaard GNU-foutbericht
formaat.
histappend
Indien ingesteld, wordt de geschiedenislijst toegevoegd aan het bestand met de naam
GESCHIEDENIS variabele wanneer de shell wordt afgesloten, in plaats van het bestand te overschrijven.
zijn bewerking
Indien ingesteld, en readline wordt gebruikt, krijgt een gebruiker de mogelijkheid om opnieuw
een mislukte geschiedenisvervanging bewerken.
histverifieer
Indien ingesteld, en readline wordt gebruikt, zijn de resultaten van geschiedenisvervanging dat ook
niet onmiddellijk doorgegeven aan de shell-parser. In plaats daarvan is de resulterende regel
geladen in de readline bewerkingsbuffer, waardoor verdere wijzigingen mogelijk zijn.
hostcompleet
Indien ingesteld, en readline wordt gebruikt, slaan zal proberen de hostnaam uit te voeren
voltooiing wanneer een woord met a @ wordt voltooid (zie Voltooien
voor LEES REGEL boven). Dit is standaard ingeschakeld.
hupexit
Indien ingesteld, slaan zal verzenden ZUCHT voor alle taken bij een interactieve login-shell
uitgangen.
interactieve_opmerkingen
Indien ingesteld, staat u een woord toe dat begint met # om dat woord te veroorzaken en alles wat overblijft
tekens op die regel moeten worden genegeerd in een interactieve shell (zie OPMERKINGEN
boven). Deze optie is standaard ingeschakeld.
laatste pijp
Indien ingesteld en taakcontrole is niet actief, voert de shell de laatste opdracht uit van a
pijplijn wordt niet op de achtergrond uitgevoerd in de huidige shell-omgeving.
litist Indien ingesteld, en de cmdist optie is ingeschakeld, worden opdrachten met meerdere regels opgeslagen
de geschiedenis met ingebedde nieuwe regels in plaats van puntkommascheidingstekens te gebruiken
waar mogelijk.
login_shell
De shell stelt deze optie in als deze wordt gestart als een login-shell (zie
AANROEPING boven). De waarde mag niet worden gewijzigd.
mailwaarschuwing
Indien ingesteld, en een bestand dat slaan controleert of er sindsdien toegang is verkregen tot e-mail
de laatste keer dat het werd gecontroleerd, verscheen het bericht ``De mail is binnen mailbestand is
lees'' wordt weergegeven.
geen_empty_cmd_completion
Indien ingesteld, en readline wordt gebruikt, slaan zal niet proberen te zoeken
PATH voor mogelijke voltooiingen wanneer voltooiing wordt geprobeerd op een lege plek
lijn.
geencaseglob
Indien ingesteld, slaan matcht bestandsnamen op een hoofdlettergevoelige manier wanneer
padnaamuitbreiding uitvoeren (zie Padnaam Uitbreiding bovenstaande).
geencasematch
Indien ingesteld, slaan matcht patronen op een hoofdlettergevoelige manier tijdens het uitvoeren
matchen tijdens de uitvoering geval or [[ voorwaardelijke opdrachten.
nulglob
Indien ingesteld, slaan staat patronen toe die niet overeenkomen met bestanden (zie Padnaam Uitbreiding
hierboven) om uit te breiden naar een nulreeks, in plaats van zichzelf.
progcomp
Indien ingesteld, kunnen de programmeerbare voltooiingsfaciliteiten (zie Programmeerbare Voltooiing
hierboven) zijn ingeschakeld. Deze optie is standaard ingeschakeld.
promptvars
Indien ingesteld, ondergaan promptstrings parameteruitbreiding, opdrachtvervanging,
rekenkundige uitbreiding en verwijdering van aanhalingstekens nadat deze is uitgebreid zoals beschreven
in PROMPT boven. Deze optie is standaard ingeschakeld.
beperkte_shell
De shell stelt deze optie in als deze in de beperkte modus wordt gestart (zie
BEPERKT SHELL onderstaand). De waarde mag niet worden gewijzigd. Dit wordt niet gereset
wanneer de opstartbestanden worden uitgevoerd, waardoor de opstartbestanden kunnen worden ontdekt
of een schaal al dan niet beperkt is.
shift_uitgebreid
Indien ingesteld, de verschuiving ingebouwde drukt een foutmelding af wanneer de ploeg telt
groter is dan het aantal positionele parameters.
bronpad
Indien ingesteld, de (bron) (.) ingebouwd gebruikt de waarde van PATH om de map te vinden
met het bestand dat als argument is opgegeven. Deze optie is ingeschakeld door
standaard.
xpg_echo
Indien ingesteld, de echo ingebouwde breidt backslash-escape-reeksen standaard uit.

opschorten [-f]
Schort de uitvoering van deze granaat op totdat deze een VOLGENDE signaal. Een login
shell kan niet worden opgeschort; de -f optie kan worden gebruikt om dit te overschrijven en de
oponthoud. De retourstatus is 0 tenzij de shell een login-shell is en -f is niet
geleverd of als taakbeheer niet is ingeschakeld.

proef uitdrukken
[ uitdrukken ]
Retourneert een status van 0 (waar) of 1 (onwaar), afhankelijk van de evaluatie van de
voorwaardelijke uitdrukking uitdrukken. Elke operator en operand moet afzonderlijk zijn
argument. Expressies zijn samengesteld uit de hierboven beschreven primaire waarden
VOORWAARDELIJK UITDRUKKINGEN. proef accepteert geen opties, noch accepteert het en
negeer een argument van -- als teken van het einde van de opties.

Expressies kunnen worden gecombineerd met behulp van de volgende operatoren, weergegeven in aflopende volgorde
volgorde van prioriteit. De evaluatie is afhankelijk van het aantal argumenten; zie hieronder.
Operatorprioriteit wordt gebruikt als er vijf of meer argumenten zijn.
! uitdrukken waar als uitdrukken is fout.
( uitdrukken )
Retourneert de waarde van uitdrukken. Dit kan worden gebruikt om het normale te overschrijven
voorrang van exploitanten.
uitdr1 -a uitdr2
Waar als beide uitdr1 en uitdr2 zijn waar.
uitdr1 -o uitdr2
Waar als een van beide uitdr1 or uitdr2 is waar.

proef en [ evalueer voorwaardelijke expressies met behulp van een reeks regels op basis van de
aantal argumenten.

0-argumenten
De uitdrukking is vals.
1-argument
De uitdrukking is waar dan en slechts dan als het argument niet nul is.
2-argumenten
Als het eerste argument dat is !, is de uitdrukking waar dan en slechts dan als de tweede
argument is nul. Als het eerste argument een van de unaire voorwaardelijke argumenten is
exploitanten hierboven vermeld onder VOORWAARDELIJK UITDRUKKINGEN, de uitdrukking is waar
als de unaire test waar is. Als het eerste argument geen geldige unaire is
voorwaardelijke operator, de expressie is onwaar.
3-argumenten
De volgende voorwaarden zijn van toepassing in de aangegeven volgorde. Als de tweede
argument is een van de hierboven genoemde binaire voorwaardelijke operatoren
VOORWAARDELIJK UITDRUKKINGEN, is het resultaat van de uitdrukking het resultaat van de
binaire test waarbij de eerste en derde argumenten als operanden worden gebruikt. De -a en -o
operatoren worden als binaire operatoren beschouwd als er drie argumenten zijn.
Als het eerste argument dat is !, is de waarde de ontkenning van het twee-argument
test met behulp van het tweede en derde argument. Als het eerste argument precies is
( en het derde argument is precies ), is het resultaat de test met één argument
van het tweede argument. Anders is de uitdrukking onwaar.
4-argumenten
Als het eerste argument dat is !, het resultaat is de ontkenning van het drie-argument
uitdrukking die bestaat uit de overige argumenten. Anders de uitdrukking
wordt geparseerd en geëvalueerd op basis van prioriteit met behulp van de vermelde regels
bovenstaand.
5 of meer argumenten
De expressie wordt geparseerd en geëvalueerd op basis van prioriteit met behulp van de
hierboven genoemde regels.

Bij gebruik bij proef or [ < en > operators sorteren lexicografisch met behulp van ASCII
bestellen.

keer Druk de verzamelde gebruikers- en systeemtijden af ​​voor de shell en voor uitgevoerde processen
uit de schaal. De retourstatus is 0.

val [-LP] [[arg] sigspec
Het bevel arg moet worden gelezen en uitgevoerd wanneer de shell signalen ontvangt
sigspec. Indien arg is afwezig (en er is een enkele sigspec) Of -, elk gespecificeerd
signaal wordt teruggezet naar zijn oorspronkelijke positie (de waarde die het had bij binnenkomst in de
schelp). Als arg is de nulreeks, het signaal dat door elk wordt gespecificeerd sigspec wordt genegeerd
door de shell en door de commando's die het aanroept. Als arg is niet aanwezig en -p is
geleverd, en vervolgens de trap-opdrachten die bij elk ervan horen sigspec worden tentoongesteld. Als Nee
argumenten worden opgegeven of alleen -p is gegeven, val drukt de lijst met opdrachten af
gekoppeld aan elk signaal. De -l optie zorgt ervoor dat de shell een lijst afdrukt van
signaalnamen en de bijbehorende nummers. Elk sigspec is ofwel een signaalnaam
gedefinieerd insignaal.h>, of een signaalnummer. Signaalnamen zijn hoofdlettergevoelig en
de SIG voorvoegsel is optioneel.

Als een sigspec is EXIT (0) het commando arg wordt uitgevoerd bij het verlaten van de schaal. Als een
sigspec is DEBUG, het bevel arg wordt vóór elke uitgevoerd simpel commando, For
commando, geval commando, kiezen commando, elke rekenkunde For opdracht, en vóór de
Het eerste commando wordt uitgevoerd in een shell-functie (zie SHELL GRAMMATICA boven). Verwijs naar de
beschrijving van de extdebug optie voor de winkelt ingebouwd voor details over het effect ervan
op de DEBUG val. Als een sigspec is RETURN, het bevel arg wordt uitgevoerd telkens a
shell-functie of een script uitgevoerd met de . or (bron) ingebouwde afwerkingen
uitvoeren.

Als een sigspec is ERR, het bevel arg wordt uitgevoerd telkens wanneer een pijplijn (wat kan
bestaat uit één enkel eenvoudig commando), een lijst, of een samengesteld commando retourneert a
niet-nul exit-status, onder de volgende voorwaarden. De ERR val is dat niet
uitgevoerd als het mislukte commando deel uitmaakt van de commandolijst onmiddellijk na a
en or tot trefwoord, onderdeel van de test in een if statement, onderdeel van een commando
uitgevoerd in een && or || lijst behalve de opdracht die volgt op de finale && or ||, ieder
opdracht in een pijplijn, maar de laatste, of als de retourwaarde van de opdracht is
omgekeerd gebruiken !. Dit zijn dezelfde voorwaarden waaraan de fout (-e) keuze.

Signalen die bij binnenkomst in de granaat worden genegeerd, kunnen niet worden opgevangen of gereset. Gevangen
signalen die niet worden genegeerd, worden teruggezet naar hun oorspronkelijke waarden in een subshell
of subshell-omgeving wanneer er een wordt gemaakt. De retourstatus is eventueel false
sigspec is ongeldig; anders val geeft true terug.

type dan: [-achterpP] naam [naam
Als er geen opties zijn, geef dan aan hoe elk naam zou worden geïnterpreteerd als het als een commando werd gebruikt
naam. Als de -t optie wordt gebruikt, type dan: drukt een string af die er één is alias,
trefwoord, functie, ingebouwdeof filet if naam is een alias, shell-gereserveerd woord,
functie, ingebouwd of schijfbestand. Als de naam wordt dan niet gevonden
er wordt niets afgedrukt en de afsluitstatus false wordt geretourneerd. Als de -p Optie is
gebruikt, type dan: ofwel retourneert de naam van het schijfbestand dat zou worden uitgevoerd als naam
werden gespecificeerd als een commandonaam, of niets als ``type -t naam'' niet zou terugkeren
filet. De -P optie dwingt a PATH zoek naar elk naam, zelfs als ``type -t naam''
zou niet terugkeren filet. Als een opdracht wordt gehasht, -p en -P druk de gehashte waarde af,
wat niet noodzakelijkerwijs het bestand is dat als eerste verschijnt PATH. Indien de -a Optie is
gebruikt, type dan: drukt alle plaatsen af ​​die een uitvoerbaar bestand met de naam bevatten naam. Deze
omvat aliassen en functies, als en slechts als de -p optie wordt ook niet gebruikt. De
tabel met gehashte opdrachten wordt niet geraadpleegd bij gebruik -a. De -f optie onderdrukt
shell-functie opzoeken, zoals bij de commando ingebouwd. type dan: retourneert waar als alles van
de argumenten worden gevonden, onwaar als er geen worden gevonden.

ulimit [-HSTabcdefilmnpqrstuvx [begrenzing]]
Biedt controle over de bronnen die beschikbaar zijn voor de shell en voor gestarte processen
door hem, op systemen die een dergelijke controle mogelijk maken. De -H en -S opties geven aan dat de
Er is een harde of zachte limiet ingesteld voor de gegeven bron. Een harde limiet kan niet worden verhoogd
door een niet-rootgebruiker zodra deze is ingesteld; een zachte limiet kan worden verhoogd tot de waarde van
de harde grens. Als geen van beide -H noch -S is gespecificeerd, zowel de zachte als de harde grenzen
spelen zich af. De waarde van begrenzing kan een getal zijn in de eenheid die voor de resource is opgegeven
of een van de speciale waarden hard, zachtof onbeperkt, die staan ​​voor de stroom
respectievelijk de harde limiet, de huidige zachte limiet en geen limiet. Als begrenzing is
weggelaten, wordt de huidige waarde van de zachte limiet van de resource afgedrukt, tenzij de
-H optie wordt gegeven. Wanneer er meer dan één resource is opgegeven, wordt de limietnaam en
eenheid worden vóór de waarde afgedrukt. Andere opties worden als volgt geïnterpreteerd:
-a Alle huidige limieten worden gerapporteerd
-b De maximale socketbuffergrootte
-c De maximale grootte van gemaakte kernbestanden
-d De maximale grootte van het gegevenssegment van een proces
-e De maximale planningsprioriteit ("leuk")
-f De maximale grootte van bestanden die door de shell en zijn onderliggende bestanden zijn geschreven
-i Het maximale aantal openstaande signalen
-l De maximale grootte die in het geheugen kan worden vastgelegd
-m De maximale ingestelde grootte voor bewoners (veel systemen respecteren deze limiet niet)
-n Het maximale aantal open bestandsdescriptors (de meeste systemen staan ​​dit niet toe
in te stellen waarde)
-p De pijpgrootte in blokken van 512 bytes (dit kan mogelijk niet worden ingesteld)
-q Het maximale aantal bytes in POSIX-berichtenwachtrijen
-r De maximale real-time planningsprioriteit
-s De maximale stapelgrootte
-t De maximale hoeveelheid CPU-tijd in seconden
-u Het maximale aantal processen dat beschikbaar is voor één gebruiker
-v De maximale hoeveelheid virtueel geheugen die beschikbaar is voor de shell en, op sommige
systemen, aan zijn kinderen
-x Het maximale aantal bestandsvergrendelingen
-T Het maximale aantal threads

If begrenzing wordt gegeven, en de -a optie wordt niet gebruikt, begrenzing is de nieuwe waarde van de
gespecificeerde bron. Als er geen optie wordt gegeven, dan -f wordt verondersteld. Waarden zijn binnen
In stappen van 1024 bytes, behalve voor -t, dat is in seconden; -p, dat is in eenheden van
Blokken van 512 bytes; En -T, -b, -n en -u, dit zijn niet-geschaalde waarden. De terugkeer
status is 0, tenzij er een ongeldige optie of argument wordt opgegeven, of er een fout optreedt
terwijl u een nieuwe limiet instelt.

umasker [-p] [-S] [mode]
Het masker voor het maken van gebruikersbestanden is ingesteld op mode. Indien mode begint met een cijfer, het is
geïnterpreteerd als een octaal getal; anders wordt het geïnterpreteerd als een symbolisch modusmasker
vergelijkbaar met die geaccepteerd door chmod(1). Indien mode wordt weggelaten, wordt de huidige waarde van de
masker is afgedrukt. De -S optie zorgt ervoor dat het masker in symbolische vorm wordt afgedrukt; de
standaarduitvoer is een octaal getal. Als de -p optie wordt geleverd, en mode is
weggelaten, heeft de uitvoer een vorm die als invoer kan worden hergebruikt. De retourstatus is
0 als de modus succesvol is gewijzigd of als nee mode argument werd geleverd, en
anders vals.

alias [-a] [naam
Verwijder elk naam uit de lijst met gedefinieerde aliassen. Als -a wordt geleverd, allemaal alias
definities worden verwijderd. De geretourneerde waarde is waar, tenzij een opgegeven naam geen
gedefinieerde alias.

uitgeschakeld [-fv] [-n] [naam
Voor elk naam, verwijder de overeenkomstige variabele of functie. Als de -v Optie is
gegeven, elk naam verwijst naar een shell-variabele, en die variabele wordt verwijderd. Lezen-
alleen variabelen mogen niet worden uitgeschakeld. Als -f is gespecificeerd, elk naam verwijst naar een schaal
functie en de functiedefinitie wordt verwijderd. Als de -n optie wordt meegeleverd,
en naam is een variabele met de naamref attribuut, naam zal eerder uitgeschakeld zijn dan
de variabele waarnaar het verwijst. -n heeft geen effect als de -f optie wordt meegeleverd. Als Nee
opties worden geleverd, elk naam verwijst naar een variabele; als er geen variabele by is
die naam, wordt elke functie met die naam uitgeschakeld. Elke uitgeschakelde variabele of functie
wordt verwijderd uit de omgeving die wordt doorgegeven aan volgende opdrachten. Als een van
COMP_WORDBREAKS, RANDOM, SECONDS, LINENR, HISTCMD, FUNCNAAM, GROEPENof DIRSTACK
zijn uitgeschakeld, verliezen ze hun speciale eigenschappen, zelfs als ze vervolgens opnieuw worden ingesteld.
De exitstatus is waar, tenzij a naam is alleen-lezen.

wachten [-n] [n ...]
Wacht op elk gespecificeerd onderliggend proces en retourneer de beëindigingsstatus ervan. Elk n
kan een proces-ID of een taakspecificatie zijn; als er een taakspecificatie wordt gegeven, alle processen
in de pijplijn van die baan wordt gewacht. Als n is niet gegeven, allemaal momenteel actief
Er wordt gewacht op onderliggende processen en de retourstatus is nul. Als de -n Optie is
geleverd, wachten wacht tot een taak is beëindigd en retourneert de afsluitstatus. Als n
specificeert een niet-bestaand proces of taak, de retourstatus is 127. Anders is de
retourstatus is de afsluitstatus van het laatste proces of de laatste taak waarop is gewacht.

BEPERKT SHELL


If slaan begint met de naam rashOf de -r optie wordt geleverd bij inroeping, de
shell wordt beperkt. Een beperkte shell wordt gebruikt om een ​​omgeving meer in te richten
gecontroleerd dan de standaard shell. Het gedraagt ​​zich identiek aan slaan met de uitzondering
dat het volgende niet is toegestaan ​​of niet wordt uitgevoerd:

· mappen wijzigen met cd

· de waarden van instellen of uitschakelen SHELL, PATH, ENVof BASH_ENV

· opgeven van opdrachtnamen die bevatten /

· het specificeren van een bestandsnaam die een / als argument voor de . ingebouwd commando

· het opgeven van een bestandsnaam met een schuine streep als argument voor het -p optie voor de
hachee ingebouwd commando

· het importeren van functiedefinities uit de shell-omgeving bij het opstarten

· het ontleden van de waarde van SCHELLOPTS vanuit de shell-omgeving bij het opstarten

· uitvoer omleiden met behulp van de omleidingsoperatoren >, >|, <>, >&, &> en >>

· de ... gebruiken exec ingebouwde opdracht om de shell te vervangen door een andere opdracht

· ingebouwde opdrachten toevoegen of verwijderen met de -f en -d opties voor de in staat stellen
ingebouwd commando

· de ... gebruiken in staat stellen ingebouwde opdracht om uitgeschakelde shell-ingebouwde functies in te schakelen

· het specificeren van de -p optie voor de commando ingebouwd commando

· beperkte modus uitschakelen met reeks +r or reeks +o begrensd.

Deze beperkingen worden afgedwongen nadat eventuele opstartbestanden zijn gelezen.

Wanneer een commando dat een shellscript blijkt te zijn, wordt uitgevoerd (zie COMMAND EXECUTIE
bovenstaand), rash schakelt alle beperkingen uit in de shell die wordt voortgebracht om het script uit te voeren.

Gebruik bash-statisch online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    XISMuS
    XISMuS
    LET OP: Cumulatieve update 2.4.3 heeft
    vrijgelaten!! De update werkt voor iedereen
    vorige 2.xx-versie. Als upgraden
    vanaf versie v1.xx, download en
    i ...
    XISMuS downloaden
  • 2
    facetracknoir
    facetracknoir
    Modulair headtracking-programma dat
    ondersteunt meerdere face-trackers, filters
    en spelprotocollen. Tussen de trackers
    zijn de SM FaceAPI, AIC Inertial Head
    Volger...
    Facetracknoir downloaden
  • 3
    PHP QR-code
    PHP QR-code
    PHP QR-code is open source (LGPL)
    bibliotheek voor het genereren van QR-code,
    2-dimensionale streepjescode. Gebaseerd op
    libqrencode C bibliotheek, biedt API voor
    QR-codebalk maken...
    PHP QR-code downloaden
  • 4
    freeciv
    freeciv
    Freeciv is een gratis turn-based spel
    strategiespel voor meerdere spelers, waarin elk
    speler wordt de leider van een
    beschaving, vechtend om de
    uiteindelijke doel: worden...
    Gratis civ downloaden
  • 5
    Koekoek Zandbak
    Koekoek Zandbak
    Cuckoo Sandbox gebruikt componenten om
    monitor het gedrag van malware in een
    Sandbox-omgeving; geïsoleerd van de
    rest van het systeem. Het biedt geautomatiseerd
    analyse van...
    Koekoek sandbox downloaden
  • 6
    LMS-YouTube
    LMS-YouTube
    YouTube-video afspelen op LMS (porteren van
    Triode's naar YouTbe API v3) Dit is
    een toepassing die ook kan worden opgehaald
    oppompen van
    https://sourceforge.net/projects/lms-y...
    LMS-YouTube downloaden
  • Meer "

Linux-commando's

Ad