EngelsFransSpaans

Ad


OnWorks-favicon

mksh-static - Online in de cloud

Voer mksh-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 mksh-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


Bedankt, sh — MirBSD Korn-shell

KORTE INHOUD


Bedankt [-+abCefhiklmnprUuvXx] [-T [!]tty | -] [-+o optie] [-c snaar | -s | filet
[argument ...]]
ingebouwde naam [argument ...]

PRODUCTBESCHRIJVING


Bedankt is een commando-interpreter bedoeld voor zowel interactief als shell-scriptgebruik. Zijn
commandotaal is een superset van de sh(C) shell-taal en grotendeels compatibel met de
originele Korn-schaal. Soms kan deze handleidingpagina scriptadvies geven; terwijl het
houdt soms rekening met draagbare shell-scripting of verschillende standaarden
informatie wordt in de eerste plaats gepresenteerd Bedankt in gedachten en moet als zodanig worden beschouwd.

Im an Android gebruiker, so wat is mksh?
Bedankt is een UNIX shell / commando-interpreter, vergelijkbaar met COMMAND.COM or CMD.EXE, welke heeft
is al een tijdje opgenomen in het Android Open Source Project. Eigenlijk is het een programma
dat draait in een terminal (consolevenster), invoer van de gebruiker neemt en opdrachten of scripts uitvoert,
wat het ook door andere programma's kan worden gevraagd, zelfs op de achtergrond. Elk voorrecht
pop-ups die u mogelijk tegenkomt, zijn dat dus niet Bedankt kwesties maar vragen van iemand anders
programma dat het gebruikt.

Aanroeping
De meeste ingebouwde onderdelen kunnen direct worden aangeroepen, bijvoorbeeld als een link vanuit zijn naam naar de verwijst
schelp; ze kloppen niet allemaal, zijn getest of werken helemaal niet.

De opties zijn als volgt:

-c snaar Bedankt voert de opdracht(en) in snaar.

-i Interactieve schaal. Een shell die commando's leest van standaardinvoer is
"interactief" als deze optie wordt gebruikt of als zowel standaardinvoer als standaardfout
zijn gehecht aan een tty(4). Een interactieve shell heeft taakbeheer ingeschakeld, negeert
de SIGINT-, SIGQUIT- en SIGTERM-signalen en drukt prompts af voordat de invoer wordt gelezen
(zie de PS1- en PS2-parameters). Het verwerkt ook de ENV-parameter of de
mkshrc bestand (zie hieronder). Voor niet-interactieve shells is de volgalle optie staat aan
standaard (zie de reeks onderstaande opdracht).

-l Inloggen shell. Als de basisnaam waarmee de shell wordt aangeroepen (bijv. argv[0]) begint met
'-' of als deze optie wordt gebruikt, wordt aangenomen dat de shell een login-shell is; zien
Startup bestanden hieronder.

-p Bevoorrechte schelp. Een shell is "bevoorrecht" als de echte gebruikers-ID of groeps-ID dat doet
komen niet overeen met het geldige gebruikers-ID of groeps-ID (zie gek(2) en word wakker(2)).
Het wissen van de geprivilegieerde optie zorgt ervoor dat de shell zijn effectieve gebruikers-ID instelt
(groeps-ID) naar zijn echte gebruikers-ID (groeps-ID). Voor verdere implicaties, zie Startup
bestanden. Als de shell geprivilegieerd is en deze vlag niet expliciet is ingesteld, zal de
"geprivilegieerde" optie wordt automatisch gewist na het verwerken van de opstartbestanden.

-r Beperkte schaal. Een shell is "beperkt" als deze optie wordt gebruikt. Het volgende
beperkingen worden van kracht nadat de shell elk profiel en ENV heeft verwerkt
bestanden:

· De cd (En chdir) opdracht is uitgeschakeld.
· De parameters SHELL, ENV en PATH kunnen niet worden gewijzigd.
· Opdrachtnamen kunnen niet worden opgegeven met absolute of relatieve paden.
· De -p optie van het ingebouwde commando commando kan niet worden gebruikt.
· Omleidingen die bestanden aanmaken, kunnen niet worden gebruikt (bijv. '>', '>|', '>>', '<>').

-s De shell leest commando's van standaardinvoer; alle niet-optie argumenten zijn
positionele parameters.

-T naam Paaien Bedankt op de tty(4) apparaat gegeven. De paden naam, /dev/ttyCnaam en
/dev/ttynaam worden op volgorde geprobeerd. Tenzij naam begint met een uitroepteken
('!'), dit gebeurt in een subshell en keert onmiddellijk terug. Als naam is een streepje
('-'), ontkoppel in plaats daarvan van de controleterminal (daemonise).

Naast het bovenstaande zijn de opties beschreven in de reeks ingebouwde opdracht kan ook worden gebruikt
op de opdrachtregel: beide [-+abCefhkmnuvXx] En [-+o optie] kan worden gebruikt voor een enkele letter
of lange opties, respectievelijk.

Als geen van beide -c noch -s optie is opgegeven, specificeert het eerste niet-optieargument
de naam van een bestand waaruit de shell commando's leest. Als er geen niet-optieargumenten zijn, wordt de
shell leest commando's van de standaardinvoer. De naam van de shell (dwz de inhoud van
$0) wordt als volgt bepaald: als de -c optie wordt gebruikt en er is een niet-optieargument,
het wordt gebruikt als de naam; als opdrachten uit een bestand worden gelezen, wordt het bestand gebruikt als de
naam; anders wordt de basisnaam waarmee de shell werd aangeroepen (dwz argv[0]) gebruikt.

De afsluitstatus van de shell is 127 als het opdrachtbestand dat op de opdrachtregel is opgegeven, dit zou kunnen
niet worden geopend, of niet nul als er een fatale syntaxisfout is opgetreden tijdens de uitvoering van een
script. Als er geen fatale fouten zijn, is de afsluitstatus die van het laatste commando
uitgevoerd, of nul, als er geen opdracht wordt uitgevoerd.

Startup bestanden
Zie voor de werkelijke locatie van deze bestanden FILES. Een login-shell verwerkt het systeem
profiel eerst. Een geprivilegieerde shell verwerkt vervolgens het suid-profiel. Een niet-geprivilegieerde login
shell verwerkt vervolgens het gebruikersprofiel. Een niet-geprivilegieerde interactieve shell controleert de waarde
van de ENV-parameter na deze te hebben onderworpen aan parameter, commando, rekenen en tilde ('~')
vervanging; indien niet ingesteld of leeg, wordt het mkshrc-profiel van de gebruiker verwerkt; anders, als een bestand
wiens naam het vervangingsresultaat is, wordt het verwerkt; niet-bestaan ​​is in stilte
buiten beschouwing gelaten. Een geprivilegieerde shell laat dan privileges vallen als geen van beide de -p optie gegeven op de
opdrachtregel noch ingesteld tijdens de uitvoering van de opstartbestanden.

commando syntaxis
De shell begint zijn invoer te ontleden door alle backslash-newline-combinaties te verwijderen
erin breken woorden. Woorden (die reeksen tekens zijn) worden gescheiden door niet-geciteerde tekens
witruimtetekens (spatie, tab en nieuwe regel) of metatekens ('<', '>', '|', ';', '(',
')', En '&'). Afgezien van het afbakenen van woorden, worden spaties en tabs genegeerd, terwijl nieuwe regels
begrenzen commando's meestal. De metakarakters worden gebruikt bij het bouwen van het volgende penningen:
'<', '<&', '<<', '<<<', '>', '>&', '>>', '&>', enz. worden gebruikt om omleidingen te specificeren (zie
Input / output omleiding onderstaand); '|' wordt gebruikt om pijplijnen te maken; '|&' wordt gebruikt om co-
processen (zie Co-processen onderstaand); ';' wordt gebruikt om commando's te scheiden; '&' wordt gebruikt om te creëren
asynchrone pijplijnen; '&&' en '||' worden gebruikt om voorwaardelijke uitvoering te specificeren; ';;', ';&'
en ';|' worden gebruikt in geval verklaringen; '(( .. ))' wordt gebruikt in rekenkundige uitdrukkingen; En
ten slotte wordt '( .. )' gebruikt om subshells te maken.

Witruimte en metatekens kunnen afzonderlijk worden aangehaald met behulp van een backslash ('\'), of in
groepen met behulp van dubbele (""') of enkele ("'") aanhalingstekens. Merk op dat de volgende tekens zijn
ook speciaal behandeld door de shell en moeten worden geciteerd als ze zichzelf willen vertegenwoordigen:
'\', '"', ''', '#', '$', '`', '~', '{', '}', '*', '?', en '['. eerste drie hiervan
zijn de bovengenoemde aanhalingstekens (zie citeren onderstaand); '#', indien gebruikt bij de
begin van een woord, introduceert een opmerking – alles na de '#' tot het dichtstbijzijnde
nieuwe regel wordt genegeerd; '$' wordt gebruikt om parameter, commando en rekenen te introduceren
vervangingen (zie Vervanging onderstaand); '`' introduceert een vervanging van commando's in oude stijl
(Zie Vervanging onderstaand); '~' begint een mapuitbreiding (zie tilde uitbreiding onderstaand); '{'
en '}' begrenzen csh(1)-stijlwisselingen (zie Beugel uitbreiding onderstaand); en tenslotte, '*',
'?', en '[' worden gebruikt bij het genereren van bestandsnamen (zie Dien in naam patronen hieronder).

Terwijl woorden en tokens worden geparseerd, bouwt de shell opdrachten, waarvan er twee basis
soorten: eenvoudige opdrachten, meestal programma's die worden uitgevoerd, en samengestelde opdrachten, zoals
as For en if statements, groeperingsconstructies en functiedefinities.

Een eenvoudige opdracht bestaat uit een combinatie van parametertoewijzingen (zie parameters
hieronder), input/output-omleidingen (zie Input / output redirects hieronder), en commandowoorden;
de enige beperking is dat parametertoewijzingen voor commandowoorden komen. De
commandowoorden, indien aanwezig, definiëren het commando dat moet worden uitgevoerd en de bijbehorende argumenten. De
commando kan een in de shell ingebouwd commando zijn, een functie of een extern commando (dwz een apart
uitvoerbaar bestand dat is gelokaliseerd met behulp van de PATH-parameter; zien commando uitvoering hieronder).
Merk op dat alle commandoconstructies een exitstatus hebben: voor externe commando's is dit gerelateerd
naar de status geretourneerd door wachten(2) (als de opdracht niet kan worden gevonden, is de exitstatus
127; als het niet kon worden uitgevoerd, is de exitstatus 126); de afsluitstatus van een andere opdracht
constructies (ingebouwde commando's, functies, samengestelde commando's, pijplijnen, lijsten, etc.) zijn allemaal
goed gedefinieerd en worden beschreven waar het construct wordt beschreven. De exitstatus van een
commando dat alleen uit parametertoewijzingen bestaat, is dat van de laatste commandovervanging
uitgevoerd tijdens de parametertoewijzing of 0 als er geen opdrachtvervangingen waren.

Commando's kunnen aan elkaar worden geketend met behulp van de '|' token om pijplijnen te vormen, waarin de
standaarduitvoer van elke opdracht, maar de laatste is doorgesluisd (zie pijp(2)) naar de standaard ingang van
het volgende commando. De exitstatus van een pijplijn is die van het laatste commando, tenzij
de pijpfout optie is ingesteld (zie daar). Alle commando's van een pijplijn worden afzonderlijk uitgevoerd
subshells; dit is toegestaan ​​door POSIX, maar verschilt van beide varianten van AT&T UNIX ksh, Waar
alles behalve het laatste commando werd uitgevoerd in subshells; zie de dit artikel lezen ingebouwde beschrijving voor
implicaties en tijdelijke oplossingen. Een pijplijn kan worden voorafgegaan door de '!' gereserveerd woord dat
zorgt ervoor dat de exitstatus van de pijplijn logisch wordt aangevuld: als de oorspronkelijke status
was 0, de aangevulde status zal 1 zijn; als de oorspronkelijke status niet 0 was, de aangevuld
status zal 0 zijn.

lijsten van opdrachten kunnen worden gemaakt door pijplijnen te scheiden met een van de volgende tokens:
'&&', '||', '&', '|&' en ';'. De eerste twee zijn voor voorwaardelijke uitvoering: “cmd1 && cmd2"
wordt uitgevoerd cmd2 alleen als de uitgangsstatus van cmd1 is nul; '||' is het tegenovergestelde - cmd2 is
alleen uitgevoerd als de exitstatus van cmd1 is niet nul. '&&' en '||' gelijke voorrang hebben
die hoger is dan die van '&', '|&' en ';', die ook dezelfde prioriteit hebben. Opmerking
dat de '&&' en '||' operatoren zijn "links-associatief". Beiden bijvoorbeeld
commando's zullen alleen "bar" afdrukken:

$ false && echo foo || echobalk
$ waar || echo foo && echobalk

Het token '&' zorgt ervoor dat de voorgaande opdracht asynchroon wordt uitgevoerd; dat wil zeggen, de schaal
start het commando maar wacht niet tot het voltooid is (de shell houdt wel de
status van asynchrone commando's; zien Jobomschrijving: onder controle te houden onderstaand). Wanneer een asynchrone opdracht is
gestart wanneer taakbeheer is uitgeschakeld (dwz in de meeste scripts), wordt het commando gestart met
signalen SIGINT en SIGQUIT genegeerd en met invoer omgeleid van / Dev / null (echter,
omleidingen gespecificeerd in de asynchrone opdracht hebben voorrang). De '|&'-operator
start een co-proces wat een speciaal soort asynchroon proces is (zie Co-processen
onderstaand). Merk op dat een commando de '&&' en '||' moet volgen exploitanten, terwijl dat niet nodig is
volg '&', '|&' of ';'. De afsluitstatus van een lijst is die van de laatst uitgevoerde opdracht,
met uitzondering van asynchrone lijsten, waarvoor de exitstatus 0 is.

Samengestelde opdrachten worden gemaakt met behulp van de volgende gereserveerde woorden. Deze woorden zijn alleen
herkend als ze niet tussen aanhalingstekens staan ​​en als ze worden gebruikt als het eerste woord van een commando (bijv
ze kunnen niet worden voorafgegaan door parametertoewijzingen of omleidingen):

case else functie dan! (
doe esac als tijd [[ ((
klaar fi in totdat {
elif voor selecteren terwijl }

In de volgende beschrijvingen van samengestelde commando's, commandolijsten (aangeduid als lijst) dat zijn
gevolgd door gereserveerde woorden moeten eindigen met een puntkomma, een nieuwe regel of een (syntactisch
juist) gereserveerd woord. De volgende zijn bijvoorbeeld allemaal geldig:

$ {echo foo; echobalk; }
$ {echo foo; echobalk }
$ { { echo foo; echobalk; } }

Dit is niet geldig:

$ {echo foo; echobalk }

(lijst)
Uitvoeren lijst in een onderschaal. Er is geen impliciete manier om omgevingsveranderingen door te geven van
een subshell terug naar zijn ouder.

{ lijst; }
Samengestelde constructie; lijst wordt uitgevoerd, maar niet in een subshell. Merk op dat '{' en '}'
zijn gereserveerde woorden, geen metatekens.

geval woord in [[(] patroon [| patroon] ...) lijst terminator] ... esac
De geval verklaring probeert overeen te komen woord tegen een opgegeven patroon; de lijst
geassocieerd met het eerste succesvol overeenkomende patroon wordt uitgevoerd. Patronen gebruikt in
geval instructies zijn dezelfde als die worden gebruikt voor bestandsnaampatronen, behalve dat de
beperkingen met betrekking tot '.' en '/' vallen weg. Merk op dat elke niet-geciteerde spatie voor
en nadat een patroon is gestript; elke spatie binnen een patroon moet worden aangehaald. Beide
woord en de patronen zijn onderhevig aan parameter-, commando- en rekenkundige vervanging,
evenals tilde-substitutie.

Om historische redenen kunnen accolades openen en sluiten worden gebruikt in plaats van in en hexac bv
geval $ foo { *) echo bars ;; }.

De lijst terminators zijn:

';;' Beëindigen na de lijst.

';&' Doorvallen naar de volgende lijst.

';|' Evalueer de resterende patroonlijst-tuples.

De exitstatus van een geval verklaring is die van de uitgevoerde lijst; als Nee lijst is
uitgevoerd, is de exitstatus nul.

For naam [in woord ...]; Doen lijst; klaar
Voor elk woord in de gespecificeerde woordenlijst, de parameter naam is ingesteld op het woord en
lijst is geëxecuteerd. Als in wordt niet gebruikt om een ​​woordenlijst te specificeren, de positionele parameters
($1, $2, etc.) worden in plaats daarvan gebruikt. Om historische redenen kunnen accolades open en dicht zijn
gebruikt in plaats van do en gedaan bv For i; { echo $ ik; }. De uitgangsstatus van a For
statement is de laatste exit-status van lijst; als lijst nooit wordt uitgevoerd, de exitstatus
is nul.

if lijst; dan lijst; [elif lijst; dan lijst;] ... [anders lijst;] bijv
Als de uitgangsstatus van de eerste lijst is nul, de tweede lijst is geëxecuteerd; anders,
de lijst na elif, indien van toepassing, wordt uitgevoerd met vergelijkbare gevolgen. Ik val
de lijsten die volgen op de if en elifs mislukken (dwz afsluiten met niet-nulstatus), de lijst
na anders is geëxecuteerd. De exit-status van een if verklaring is die van niet-
voorwaardelijk lijst dat wordt uitgevoerd; indien niet onvoorwaardelijk lijst wordt uitgevoerd, de uitgang
stand is nul.

kiezen naam [in woord ...]; Doen lijst; klaar
De kiezen statement biedt een automatische methode om de gebruiker een menu te presenteren
en daaruit selecteren. Een opgesomde lijst van de gespecificeerde woord(s) is bedrukt
standaardfout, gevolgd door een prompt (PS3: normaal '#? '). Een nummer dat overeenkomt met
een van de opgesomde woorden wordt dan uit de standaardinvoer gelezen, naam is ingesteld op de
geselecteerd woord (of uitgeschakeld als de selectie niet geldig is), wordt REPLY ingesteld op wat werd gelezen
(voorloop-/volgruimte is gestript), en lijst is geëxecuteerd. Als een lege regel (bijv
nul of meer IFS-octetten) wordt ingevoerd, wordt het menu opnieuw afgedrukt zonder uit te voeren lijst.

. lijst voltooit, wordt de opgesomde lijst afgedrukt als REPLY NULL is, de prompt is
gedrukt, enzovoort. Dit proces gaat door totdat een end-of-file wordt gelezen, een interrupt
wordt ontvangen, of a breken statement wordt binnen de lus uitgevoerd. Als "in woord ..." is
weggelaten, worden de positionele parameters gebruikt (dwz $1, $2, enz.). Voor historisch
redenen kunnen accolades openen en sluiten worden gebruikt in plaats van do en gedaan bv kiezen i; {
echo $ ik; }. De uitgangsstatus van a kiezen bewering is nul als a breken verklaring is
gebruikt om de lus te verlaten, anders niet nul.

tot lijst; doen lijst; klaar
Dit werkt als: en, behalve dat de body alleen wordt uitgevoerd terwijl de exit-status van
de eerste lijst niet nul is.

en lijst; doen lijst; klaar
A en is een vooraf gecontroleerde lus. De body wordt net zo vaak uitgevoerd als de exitstatus van
de eerste lijst nul is. De uitgangsstatus van a en verklaring is de laatste exit-status
van de lijst in het lichaam van de lus; als de body niet wordt uitgevoerd, is de exit-status
nul.

functie naam { lijst; }
Definieert de functie naam (Zie Functies onderstaand). Houd er rekening mee dat omleidingen zijn opgegeven
nadat een functiedefinitie wordt uitgevoerd wanneer de functie wordt uitgevoerd, niet wanneer
de functiedefinitie wordt uitgevoerd.

naam() commando
Meestal hetzelfde als functie (Zie Functies onderstaand). Witruimte (spatie of tab) na
naam zal het grootste deel van de tijd worden genegeerd.

functie naam() { lijst; }
Hetzelfde als naam() (slaanisme). De functie trefwoord wordt genegeerd.

niet de tijd of [-p] [pijpleiding]
De commando uitvoering sectie beschrijft de niet de tijd of gereserveerd woord.

(( uitdrukking ))
De rekenkundige uitdrukking uitdrukking wordt geëvalueerd; gelijk aan "uitdrukking laten" (zie
Rekenkunde uitdrukkingen en laten commando, hieronder) in een samengestelde constructie.

[[ uitdrukking ]]
Vergelijkbaar met de proef en [ ... ] commando's (later beschreven), met het volgende
uitzonderingen:

· Het splitsen van velden en het genereren van bestandsnamen wordt niet uitgevoerd op argumenten.

· De -a (En en -o (OR)-operatoren worden vervangen door respectievelijk '&&' en '||'.

· Operatoren (bijv. '-f', '=', '!') moet niet tussen aanhalingstekens staan.

· Parameter-, opdracht- en rekenkundige vervangingen worden uitgevoerd zoals uitdrukkingen
geëvalueerde en luie expressie-evaluatie wordt gebruikt voor de '&&' en '||' exploitanten.
Dit betekent dat in de volgende verklaring, $( wordt geëvalueerd als en slechts als
het bestand foo bestaat en is leesbaar:

$ [[ -r foo && $(

· De tweede operand van de uitdrukkingen '!=' en '=' is een subset van patronen (bijv
de vergelijking [[ foobar = f*r ]] slaagt). Dit werkt zelfs indirect:

$ bar=foobar; baz='f*r'
$ [[ $bar = $baz ]]; echo $?
$ [[ $bar = "$baz" ]]; echo $?

Misschien verrassend genoeg slaagt de eerste vergelijking wel, de tweede niet.
Dit is momenteel niet van toepassing op alle extglob-metatekens.

citeren
Citeren wordt gebruikt om te voorkomen dat de shell karakters of woorden speciaal behandelt. Er zijn
drie manieren van citeren. Ten eerste citeert '\' het volgende teken, tenzij het aan de
einde van een regel, in welk geval zowel de '\' als de nieuwe regel worden verwijderd. Ten tweede, een enkele
citaat ("'") citeert alles tot aan het volgende enkele citaat (dit kan regels overspannen). Ten derde, een
dubbele aanhalingstekens ('"') citeert alle karakters, behalve '$', '`' en '\', tot aan de volgende unescaped
dubbele aanhalingstekens. '$' en '`' tussen dubbele aanhalingstekens hebben hun gebruikelijke betekenis (dwz parameter,
rekenkunde of opdrachtvervanging) behalve dat er geen veldsplitsing wordt uitgevoerd op de resultaten
van vervangingen met dubbele aanhalingstekens, en de ouderwetse vorm van vervanging van commando's heeft
backslash-aanhalingstekens voor dubbele aanhalingstekens ingeschakeld. Als een '\' in een string met dubbele aanhalingstekens is
gevolgd door '\', '$', '`' of '"', wordt het vervangen door het tweede teken; als het wordt gevolgd
door een nieuwe regel worden zowel de '\' als de nieuwe regel verwijderd; anders zijn zowel de '\' als de
volgende tekens zijn ongewijzigd.

Als een tekenreeks met enkele aanhalingstekens wordt voorafgegaan door een niet-aangehaalde '$', wordt een backslash-uitbreiding in C-stijl (zie
hieronder) wordt toegepast (zelfs enkele aanhalingstekens binnenin kunnen worden ontsnapt en eindigen niet
de string dan); het uitgevouwen resultaat wordt behandeld als elke andere tekenreeks met enkele aanhalingstekens. Als een
een string met dubbele aanhalingstekens wordt voorafgegaan door een niet-geciteerde '$', de '$' wordt gewoon genegeerd.

backslash uitbreiding
Op plaatsen waar backslashes worden uitgebreid, bepaalde C en AT&T UNIX ksh of GNU slaan stijl
ontsnappingen worden vertaald. Deze omvatten '\a', '\b', '\f', '\n', '\r', '\t', '\U#########',
'\u####' en '\v'. Voor '\U########' en '\u####' betekent '#' een hexadecimaal cijfer, waarvan
er kunnen er geen zijn tot vier of acht; deze ontsnappingen vertalen een Unicode-codepunt naar UTF-8.
Bovendien breiden '\E' en '\e' uit tot het escape-teken.

In het print ingebouwde modus, '\"', '\'' en '\?' zijn expliciet uitgesloten; octale sequenties
moet de geen tot drie octale cijfers "#" hebben, voorafgegaan door het cijfer nul ('\0###');
hexadecimale reeksen '\x##' zijn beperkt tot geen maximaal twee hexadecimale cijfers “#”; beide
octale en hexadecimale reeksen worden omgezet in onbewerkte octetten; '\#', waarbij # geen van bovenstaande is,
vertaalt naar \# (backslashes blijven behouden).

Backslash-uitbreiding in de C-stijlmodus verschilt enigszins: octale reeksen '\###' moeten hebben
geen cijfer nul voorafgegaan door de één tot drie octale cijfers "#" en levert onbewerkte octetten op;
hexadecimale reeksen '\x#*' eten gretig zoveel hexadecimale cijfers "#" op als ze kunnen en
eindigen met het eerste niet-hexadecimale cijfer; deze vertalen een Unicode-codepunt naar
UTF-8. De reeks '\c#', waarbij "#" een willekeurig octet is, vertaalt zich naar Ctrl-# (wat eigenlijk
betekent, '\c?' wordt DEL, al het andere is bitsgewijze ANDed met 0x1F). Tot slot '\#', waar
# is geen van de bovenstaande, vertaalt naar # (heeft de backslash afgekapt), zelfs als het een is
nieuwe lijn.

Aliassen
Er zijn twee soorten aliassen: normale opdrachtaliassen en gevolgde aliassen. Voer aliassen uit
worden normaal gesproken gebruikt als korte hand voor een lang of vaak gebruikt commando. De schaal zet uit
opdrachtaliassen (dwz vervangt de aliasnaam voor zijn waarde) wanneer het het eerste woord leest
van een commando. Een uitgebreide alias wordt opnieuw verwerkt om te controleren op meer aliassen. Als een opdracht
alias eindigt op een spatie of tab, wordt het volgende woord ook gecontroleerd op aliasuitbreiding. De
aliasuitbreidingsproces stopt wanneer een woord wordt gevonden dat geen alias is, wanneer een tussen aanhalingstekens staand woord
wordt gevonden, of wanneer een aliaswoord wordt gevonden dat momenteel wordt uitgebreid. Aliassen zijn
specifiek een interactieve functie: hoewel ze toevallig werken in scripts en op de
opdrachtregel worden in sommige gevallen aliassen uitgebreid tijdens het lexen, dus het gebruik ervan moet in een
aparte opdrachtboom van hun definitie; anders wordt de alias niet gevonden.
Opmerkelijk zijn commandolijsten (gescheiden door puntkomma, in commandovervangingen ook door nieuwe regel)
kan één dezelfde ontleedboom zijn.

De volgende opdrachtaliassen worden automatisch door de shell gedefinieerd:

autoload='\typeset -fu'
functies='\typeset -f'
hash='\ingebouwde alias -t'
history='\ingebouwde fc -l'
integer='\typeset -i'
local='\typeset'
login='\exec login'
nameref='\typeset -n'
nohup='nohup '
r='\ingebouwde fc -e -'
type='\ingebouwd vanwaar -v'

Bijgehouden aliassen stellen de shell in staat om te onthouden waar het een bepaald commando heeft gevonden. De eerste
keer dat de shell een pad zoekt naar een commando dat is gemarkeerd als een bijgehouden alias, wordt het opgeslagen
het volledige pad van de opdracht. De volgende keer dat het commando wordt uitgevoerd, controleert de shell het
opgeslagen pad om te zien of het nog steeds geldig is, en als dat het geval is, voorkomt u dat het zoeken naar het pad wordt herhaald.
Bijgehouden aliassen kunnen worden weergegeven en gemaakt met behulp van alias -t. Houd er rekening mee dat het wijzigen van de PATH
parameter wist de opgeslagen paden voor alle bijgehouden aliassen. Als de volgalle optie is ingesteld
(d.w.z reeks -o volgalle or reeks -h), volgt de shell alle commando's. Deze optie is ingesteld
automatisch voor niet-interactieve shells. Voor interactieve shells alleen het volgende
commando's worden automatisch bijgehouden: hoe(1) cc(1) chmod(1) cp(1) gegevens(1) ed(1)
emacs(1) grep(1) ls(1) maken(1) mv(1) pr(1) rm(1) dorst(1) sh(1) vi(1), en die(1).

Vervanging
De eerste stap die de shell neemt bij het uitvoeren van een eenvoudig commando is het uitvoeren van vervangingen op
de woorden van het bevel. Er zijn drie soorten vervanging: parameter, commando en
rekenkundig. Parametervervangingen, die in de volgende sectie in detail worden beschreven,
neem de vorm $naam of ${...}; opdrachtvervangingen hebben de vorm $(commando) Of
(verouderd) `commando` of (uitgevoerd in de huidige omgeving) ${ commando;} en strippen
achterblijvende nieuwe regels; en rekenkundige vervangingen hebben de vorm $((uitdrukking)). Het ontleden van de
opdrachtvervanging in de huidige omgeving vereist een spatie, tab of nieuwe regel na het openen
accolade en dat de afsluitende accolade wordt herkend als een trefwoord (dat wil zeggen wordt voorafgegaan door een nieuwe regel
of puntkomma). Ze worden ook funsubs (functievervangingen) genoemd en gedragen zich als
functies daarin lokaal en terugkeer werk, en daarin afrit beëindigt de bovenliggende shell; schelp
opties worden gedeeld.

Een andere variant van substitutie zijn de valsubs (waardesubstituties) ${|commando;} welke zijn
ook uitgevoerd in de huidige omgeving, zoals funsubs, maar delen hun I/O met de ouder;
in plaats daarvan evalueren ze naar wat de aanvankelijk lege expressie-lokale variabele REPLY ook is
ingesteld op binnen de commandos.

Als een vervanging buiten dubbele aanhalingstekens verschijnt, zijn de resultaten van de vervanging:
over het algemeen onderhevig aan woord- of veldsplitsing volgens de huidige waarde van de IFS
parameter. De parameter IFS specificeert een lijst met octetten die worden gebruikt om een ​​string op te splitsen
in meerdere woorden; alle octetten van de ingestelde spatie, tab en nieuwe regel die in de IFS verschijnen
octetten worden "IFS-witruimte" genoemd. Sequenties van een of meer IFS-witruimte-octetten, in
combinatie met nul of één niet-IFS witruimte-octetten, een veld afbakenen. Als speciaal geval
voorloop- en achterloop IFS-witruimte is gestript (dwz er is geen voorloop- of achterloop leeg veld
erdoor gemaakt); leidende of afsluitende niet-IFS-witruimte creëert wel een leeg veld.

Voorbeeld: Als IFS is ingesteld op " :", en VAR is ingesteld op
“ A : B::D”, resulteert de vervanging van $VAR in vier velden: 'A',
'B', '' (een leeg veld) en 'D'. Merk op dat als de IFS-parameter is ingesteld op de lege
string, er wordt geen veldsplitsing gedaan; als deze niet is ingesteld, wordt de standaardwaarde van spatie, tab en
nieuwe regel wordt gebruikt.

Merk ook op dat het splitsen van velden alleen van toepassing is op het onmiddellijke resultaat van de
vervanging. Als we het vorige voorbeeld gebruiken, resulteert de vervanging voor $VAR:E in de
velden: 'A', 'B', '' en 'D:E', niet 'A', 'B', '', 'D' en 'E'. Dit gedrag is POSIX
compliant, maar incompatibel met sommige andere shell-implementaties die veldsplitsing doen
op het woord dat de vervanging bevatte of gebruik IFS als algemeen witruimtescheidingsteken.

De resultaten van vervanging zijn, tenzij anders aangegeven, ook onderhevig aan uitzetting van de beugel
en bestandsnaamuitbreiding (zie de relevante secties hieronder).

Een opdrachtvervanging wordt vervangen door de uitvoer die wordt gegenereerd door de opgegeven opdracht die is
uitvoeren in een subshell. Voor $(commando) en ${|commando;} en ${ commando;} vervangingen, normaal
citeerregels worden gebruikt wanneer commando wordt ontleed; echter voor de verouderde `commando`vorm, een
'\' gevolgd door '$', '`' of '\' wordt gestript (net als '"' wanneer de vervanging deel uitmaakt
van een string met dubbele aanhalingstekens); een backslash '\' gevolgd door een willekeurig ander teken blijft ongewijzigd.
Als een speciaal geval bij commandovervangingen, een commando van de vormfilet wordt geïnterpreteerd
gemiddelde vervanging van de inhoud van filet. Merk op dat $( heeft hetzelfde effect als $(kat) foe).

Merk op dat sommige shells geen recursieve parser gebruiken voor het vervangen van commando's, wat leidt tot
mislukking voor bepaalde constructies; om overdraagbaar te zijn, gebruik als tijdelijke oplossing 'x=$(cat) <<"EOF"' (of de
newline-behoud 'x=<<"EOF"' extensie) in plaats daarvan alleen maar de string opslurpen. IEEE-norm 1003.1
("POSIX.1") raadt aan om case-statements te gebruiken in de vorm 'x=$(case $foo in (bar) echo $bar
;; (*) echo $baz ;; esac)' in plaats daarvan, wat zou werken maar hiervoor niet als voorbeeld dient
draagbaarheid probleem.

x=$(hoofdletter $foo in balk) echo $balk ;; *) echo $baz ;; esac)
# hierboven kan oude shells niet analyseren; hieronder is de oplossing
x=$(eval $(cat)) <<"EOF"
case $foo in bar) echo $bar ;; *) echo $baz ;; esac
EOF

Rekenkundige vervangingen worden vervangen door de waarde van de opgegeven uitdrukking. Voor
bijvoorbeeld het commando print $((2+3*4)) geeft 14 weer. Zie Rekenkunde uitdrukkingen voor een
beschrijving van een uitdrukking.

parameters
Parameters zijn shell-variabelen; er kunnen waarden aan worden toegewezen en hun waarden zijn toegankelijk
met behulp van een parametersubstitutie. Een parameternaam is ofwel een van de speciale single
interpunctie- of cijferkarakterparameters die hieronder worden beschreven, of een letter gevolgd door nul of
meer letters of cijfers ('_' telt als een letter). De laatste vorm kan worden behandeld als arrays
door een array-index toe te voegen van de vorm [uitdrukken] waar uitdrukken is een rekenkundige uitdrukking.
Array-indexen in Bedankt zijn beperkt tot het bereik 0 tot en met 4294967295. Dat is,
ze zijn een 32-bits geheel getal zonder teken.

Parametervervangingen hebben de vorm $naam, ${naam}, of ${naam[uitdrukken]} waar naam is een
parameternaam. Vervanging van alle array-elementen door ${naam[*]} en ${naam[@]} werkt
gelijk aan $* en $@ voor positionele parameters. Als vervanging wordt uitgevoerd op a
parameter (of een arrayparameterelement) die niet is ingesteld, wordt een null-tekenreeks vervangen
Tenzij de zelfstandig naamwoord keuze (reeks -o zelfstandig naamwoord or reeks -u) is ingesteld, in welk geval er een fout optreedt.

Aan parameters kunnen op een aantal manieren waarden worden toegekend. Ten eerste wordt de shell impliciet ingesteld
sommige parameters zoals '#', 'PWD' en '$'; dit is de enige manier waarop het speciale enkele karakter
parameters zijn ingesteld. Ten tweede worden parameters geïmporteerd uit de shell-omgeving op
beginnen. Ten derde kunnen aan parameters waarden worden toegewezen op de opdrachtregel: bijvoorbeeld FOO=balk
stelt de parameter "FOO" in op "bar"; er kunnen meerdere parametertoewijzingen op één worden gegeven
opdrachtregel en ze kunnen worden gevolgd door een eenvoudige opdracht, in welk geval de toewijzingen zijn
alleen van kracht voor de duur van het commando (dergelijke toewijzingen worden ook geëxporteerd; zie
hieronder voor de implicaties hiervan). Merk op dat zowel de parameternaam als de '=' moeten zijn
unquoted voor de shell om een ​​parametertoewijzing te herkennen. De constructie FOO+=baz Ook
erkend; de oude en nieuwe waarden worden onmiddellijk aaneengeschakeld. De vierde manier van instellen
een parameter is met de exporteren, globaal, alleen lezen en gezet commando's; zie hun
beschrijvingen in de commando uitvoering sectie. Vijfde, For en kiezen lussen stellen parameters in
alsmede de getopt, dit artikel lezen en reeks -A commando's. Ten slotte kunnen parameters worden toegewezen
waarden met behulp van toewijzingsoperatoren binnen rekenkundige uitdrukkingen (zie Rekenkunde uitdrukkingen
hieronder) of gebruik de ${naam=waarde} vorm van de parametersubstitutie (zie hieronder).

Parameters met het exportattribuut (ingesteld met de exporteren or gezet -x commando's, of door
parametertoewijzingen gevolgd door eenvoudige commando's) worden in de omgeving geplaatst (zie
milieu(7)) van commando's uitgevoerd door de shell as naam=waarde paren. De volgorde waarin parameters
verschijnen in de omgeving van een opdracht is niet gespecificeerd. Wanneer de shell opstart, is het
haalt parameters en hun waarden uit zijn omgeving en stelt automatisch de export in
attribuut voor die parameters.

Aanpassers kunnen worden toegepast op de ${naam} vorm van parametersubstitutie:

${naam:-woord}
If naam is ingesteld en niet NULL, het is vervangen; anders, woord wordt vervangen.

${naam:+woord}
If naam is ingesteld en niet NULL, woord wordt vervangen; anders wordt niets vervangen.

${naam:=woord}
If naam is ingesteld en niet NULL, het is vervangen; anders wordt het toegewezen woord en
de resulterende waarde van naam wordt vervangen.

${naam:?woord}
If naam is ingesteld en niet NULL, het is vervangen; anders, woord is gedrukt op
standaardfout (voorafgegaan door naam:) en er treedt een fout op (normaal veroorzaakt beëindiging
van een shellscript, functie of script afkomstig met de '.' ingebouwd). Als woord is
weggelaten, wordt in plaats daarvan de tekenreeks "parameter null of niet ingesteld" gebruikt. Momenteel een bug,
if woord is een variabele die uitbreidt naar de null-tekenreeks, de foutmelding is dat ook
afgedrukt.

Merk op dat, voor al het bovenstaande, woord wordt eigenlijk beschouwd als geciteerd, en speciale parsing
regels gelden. De parseerregels verschillen ook naargelang de uitdrukking tussen dubbele aanhalingstekens staat: woord
gebruikt dan regels voor dubbele aanhalingstekens, behalve de dubbele aanhalingstekens zelf ('"') en de afsluiting
accolade, die, als er een backslash is ontsnapt, het verwijderen van aanhalingstekens toepast.

In de bovenstaande modificaties kan de ':' worden weggelaten, in welk geval de voorwaarden alleen afhangen van
naam wordt ingesteld (in tegenstelling tot set en niet NULL). Als woord is nodig, parameter, opdracht,
rekenkunde en tilde-substitutie worden erop uitgevoerd; als woord is niet nodig, dat is het niet
geëvalueerd.

De volgende vormen van parametersubstitutie kunnen ook worden gebruikt (indien naam is een array, de
element met de sleutel "0" wordt vervangen in scalaire context):

${#naam}
Het aantal positionele parameters als naam is '*', '@' of niet gespecificeerd; anders
de lengte (in tekens) van de tekenreekswaarde van de parameter naam.

${#naam[*]}
${#naam[@]}
Het aantal elementen in de array naam.

${%naam}
De breedte (in schermkolommen) van de tekenreekswaarde van parameter naam, of -1 als
${naam} bevat een besturingsteken.

${!naam}
De naam van de variabele waarnaar wordt verwezen door naam. Dit zal zijn naam behalve wanneer naam is
een naamreferentie (gebonden variabele), gemaakt door de naamref opdracht (wat een alias
For gezet -n).

${!naam[*]}
${!naam[@]}
De namen van indices (sleutels) in de array naam.

${naam#patroon}
${naam##patroon}
If patroon komt overeen met het begin van de waarde van parameter naam, de overeenkomende tekst is
verwijderd uit het resultaat van de vervanging. Een enkele '#' resulteert in de kortste
match, en twee van hen resulteren in de langste match. Kan niet worden toegepast op een vector
(${*} of ${@} of ${array[*]} of ${array[@]}).

${naam%patroon}
${naam%%patroon}
Zoals ${..#..} vervanging, maar het verwijdert vanaf het einde van de waarde. Kan niet zijn
toegepast op een vector.

${naam/patroon/koord}
${naam/#patroon/koord}
${naam/%patroon/koord}
${naam//patroon/koord}
De langste wedstrijd van patroon in de waarde van parameter naam is vervangen door snaar
(verwijderd als snaar is leeg; de schuine streep ('/') mag in dat geval worden weggelaten).
Een schuine streep gevolgd door '#' of '%' zorgt ervoor dat het patroon wordt verankerd aan de
respectievelijk begin of einde van de waarde; leeg niet verankerd patroons oorzaak nee
vervanging; een enkele schuine streep of het gebruik van een patroon dat past bij de leegte
string zorgt ervoor dat de vervanging slechts één keer plaatsvindt; twee leidende schuine strepen veroorzaken alles
voorkomen van overeenkomsten in de te vervangen waarde. Kan niet worden toegepast op een vector.
Inefficiënt geïmplementeerd, kan traag zijn.

${naam:post:len}
De eerste len karakters van naam, beginnend bij positie post, zijn vervangen. Beide
post en:len zijn optioneel. Als post negatief is, begint het tellen aan het einde van de
snaar; als het wordt weggelaten, is het standaard 0. Als len is weggelaten of groter dan de
lengte van de resterende string, wordt alles vervangen. Beide post en len zijn
geëvalueerd als rekenkundige uitdrukkingen. Momenteel, post moet beginnen met een spatie,
openingshaakje of cijfer om herkend te worden. Kan niet worden toegepast op een vector.

${naam@#}
De hash (met behulp van het BAFH-algoritme) van de uitbreiding van naam. Hier wordt ook gebruik van gemaakt
intern voor de hashtabellen van de shell.

${naam@Q}
Een uitdrukking tussen aanhalingstekens die veilig is voor herinvoer, waarvan de waarde de waarde is van de naam
parameter, wordt vervangen.

Merk op dat patroon heeft mogelijk een uitgebreid globbing-patroon (@(...)), enkel ('...') of dubbel nodig
("...") citaat ontsnapt tenzij -o sh is ingesteld.

De volgende speciale parameters worden impliciet ingesteld door de shell en kunnen niet direct worden ingesteld
opdrachten gebruiken:

! Proces-ID van het laatst gestarte achtergrondproces. Als er geen achtergrondprocessen zijn
gestart is, is de parameter niet ingesteld.

# Het aantal positionele parameters ($1, $2, etc.).

$ De PID van de shell, of de PID van de originele shell als het een subshell is. Doen NIET
gebruik dit mechanisme voor het genereren van tijdelijke bestandsnamen; zien mktemp(1) in plaats daarvan.

- De aaneenschakeling van de huidige enkele letteropties (zie de reeks onderstaande commando
voor een lijst met opties).

? De afsluitstatus van de laatste niet-asynchrone opdracht die is uitgevoerd. Als het laatste commando
werd gedood door een signaal, $? is ingesteld op 128 plus het signaalnummer, maar maximaal 255.

0 De naam van de shell, als volgt bepaald: het eerste argument voor Bedankt Als het was
aangeroepen met de -c optie en argumenten werden gegeven; anders de filet argument, als
het werd geleverd; of anders de basisnaam waarmee de shell werd aangeroepen (bijv. argv[0]). $ 0
is ook ingesteld op de naam van het huidige script of de naam van de huidige functie,
als het was gedefinieerd met de functie trefwoord (dwz een functie in Korn-shellstijl).

1 .. 9 De eerste negen positionele parameters die werden geleverd aan de shell, functie of
script afkomstig met behulp van de '.' ingebouwd. Verdere positionele parameters kunnen zijn
toegankelijk met ${aantal}.

* Alle positionele parameters (behalve 0), dwz $1, $2, $3, ...
Indien gebruikt buiten dubbele aanhalingstekens, zijn parameters afzonderlijke woorden (die subject
tot woordsplitsing); indien gebruikt tussen dubbele aanhalingstekens, worden parameters gescheiden door de
eerste teken van de IFS-parameter (of de lege tekenreeks als IFS NULL is).

@ Hetzelfde als $*, tenzij het tussen dubbele aanhalingstekens wordt gebruikt, in welk geval een apart woord is
gegenereerd voor elke positionele parameter. Als er geen positionele parameters zijn, nee
woord wordt gegenereerd. $@ kan worden gebruikt om toegang te krijgen tot argumenten, woordelijk, zonder te verliezen
NULL-argumenten of splitsargumenten met spaties.

De volgende parameters worden ingesteld en/of gebruikt door de shell:

_ (onderstrepingsteken) Wanneer een extern commando wordt uitgevoerd door de shell, wordt deze parameter
wordt ingesteld in de omgeving van het nieuwe proces naar het pad van het uitgevoerde
commando. Bij interactief gebruik wordt deze parameter ook in de bovenliggende shell ingesteld op
het laatste woord van het vorige commando.

BASHPID De PID van de shell of subshell.

CDPATH Net als PATH, maar gebruikt om het argument om te zetten in de cd ingebouwde opdracht. Opmerking
dat als CDPATH is ingesteld en geen '.' of een leeg tekenreekselement, de
huidige map wordt niet doorzocht. Ook de cd ingebouwde opdracht wordt weergegeven
de resulterende map wanneer er een overeenkomst wordt gevonden in een ander zoekpad dan de
leeg pad.

KOLOMMEN Instellen op het aantal kolommen op de terminal of het venster. Altijd ingesteld, standaard
tot 80, tenzij de waarde zoals gerapporteerd door stijf(1) is niet nul en gezond genoeg
(minimaal 12x3); gelijkaardig voor LIJNEN. Deze parameter wordt gebruikt door de
interactieve lijnbewerkingsmodi, en door de kiezen, reeks -o en doden -l commando's
informatiekolommen opmaken. Importeren vanuit de omgeving of uitschakelen
deze parameter verwijdert de binding aan de daadwerkelijke terminalgrootte ten gunste van de
verstrekte waarde.

ENV Als blijkt dat deze parameter is ingesteld nadat er profielbestanden zijn uitgevoerd, wordt het
uitgebreide waarde wordt gebruikt als een shell-opstartbestand. Het bevat meestal een functie
en aliasdefinities.

ERRNO Integerwaarde van de shell's fout variabel. Het geeft de laatste reden aan
systeemaanroep mislukt. Nog niet geimplementeerd.

EXECSHELL Indien ingesteld, wordt aangenomen dat deze parameter de shell bevat die moet worden gebruikt
opdrachten uitvoeren die uitvoerend(2) niet kan worden uitgevoerd en die niet beginnen met een
“#!schelp" reeks.

FCEDIT De editor die wordt gebruikt door de fc commando (zie hieronder).

FPATH Net als PATH, maar gebruikt wanneer een ongedefinieerde functie wordt uitgevoerd om het bestand te lokaliseren
het definiëren van de functie. Er wordt ook gezocht wanneer een opdracht niet kan worden gevonden met
PAD. Zien Functies hieronder voor meer informatie.

HISTFILE De naam van het bestand dat wordt gebruikt om de opdrachtgeschiedenis op te slaan. Wanneer toegewezen aan of uitgeschakeld,
het bestand wordt geopend, de geschiedenis wordt afgekapt en vervolgens uit het bestand geladen; volgend
nieuwe commando's (eventueel bestaande uit meerdere regels) worden toegevoegd zodra ze
succesvol samengesteld. Ook zullen verschillende aanroepen van de shell worden gedeeld
geschiedenis als hun HISTFILE-parameters allemaal naar hetzelfde bestand verwijzen.

Note: Als HISTFILE niet is ingesteld of leeg is, wordt er geen geschiedenisbestand gebruikt. Dit is
verschilt van AT&T UNIX ksh.

HISTSIZE Het aantal opdrachten dat normaal wordt opgeslagen voor de geschiedenis. De standaardwaarde is 2047. Doen
stel deze waarde niet in op waanzinnig hoge waarden zoals 1000000000 omdat Bedankt wel
wijs dan niet genoeg geheugen toe voor de geschiedenis en start niet.

HOME De standaardmap voor de cd opdracht en de waarde vervangen door een
ongeschikt ~ (Zie tilde uitbreiding hieronder).

IFS Intern veldscheidingsteken, gebruikt tijdens vervanging en door de dit artikel lezen bevel, aan
waarden opsplitsen in afzonderlijke argumenten; normaal ingesteld op spatie, tab en nieuwe regel.
Bekijk Vervanging hierboven voor details.

Note: Deze parameter wordt niet geïmporteerd uit de omgeving wanneer de shell dat wel is
begonnen.

KSHEGID De effectieve groeps-ID van de shell.

KSHGID De echte groeps-ID van de shell.

KSHUID De echte gebruikers-ID van de shell.

KSH_VERSION De naam en versie van de shell (alleen-lezen). Zie ook de versiecommando's
in Emacs editing mode en Vi editing mode secties, hieronder.

LINENO Het regelnummer van de functie of het shellscript dat momenteel wordt uitgevoerd
uitgevoerd.

LIJNEN Instellen op het aantal lijnen op de terminal of het venster. Altijd ingesteld, standaard ingesteld op
24. Zie KOLOMMEN.

EPOCHREALTIJD
Tijd sinds het tijdperk, zoals geretourneerd door haal de tijd van de dag(2), opgemaakt als decimaal
tv_sec gevolgd door een punt ('.') en tv_usec opgevuld tot precies zes decimalen
cijfers.

OLDPWD De vorige werkdirectory. Schakel uit als cd is niet succesvol gewijzigd
mappen sinds de shell is gestart, of als de shell niet weet waar hij is.

OPTARG Bij gebruik getopt, bevat het het argument voor een geparseerde optie, als het
vereist een.

OPTIND De index van het volgende argument dat moet worden verwerkt bij gebruik getopt. Toewijzen 1
aan deze parameter veroorzaakt getopt om argumenten vanaf het begin te verwerken
de volgende keer dat het wordt aangeroepen.

PAD Een door dubbele punt (puntkomma op OS/2) gescheiden lijst van mappen die worden doorzocht
bij het zoeken naar opdrachten en bestanden die afkomstig zijn van de '.' opdracht (zie hieronder).
Een lege tekenreeks die het resultaat is van een voorste of achterste dubbele punt, of twee aangrenzende
dubbele punten, wordt behandeld als een '.' (de huidige map).

PGRP De proces-ID van de procesgroepleider van de shell.

PIPESTATUS Een array die de errorlevel (exit status) codes één voor één bevat van de laatste
pijpleiding loopt op de voorgrond.

PPID De proces-ID van de ouder van de shell.

PS1 De primaire prompt voor interactieve shells. Parameter, opdracht en rekenen
vervangingen worden uitgevoerd, en '!' wordt vervangen door de huidige opdracht
nummer (zie de fc opdracht hieronder). Een letterlijke '!' kan in de prompt worden gezet door
het plaatsen van '!!' op PS1.

De standaardprompt is '$ ' voor niet-rootgebruikers, '# ' voor root. Als Bedankt is
aangeroepen door root en PS1 bevat geen '#'-teken, de standaardwaarde
zal worden gebruikt, zelfs als PS1 al in de omgeving bestaat.

De Bedankt distributie wordt geleverd met een monster punt.mkshrc bevat een verfijnde
bijvoorbeeld, maar misschien vind je de volgende leuk (merk op dat
${HOSTNAME:=$(hostname)} en de root-vs-user onderscheidende clausule zijn (in
dit voorbeeld) uitgevoerd tijdens de toewijzing van PS1, terwijl de $USER en $PWD dat zijn
ontsnapt en wordt dus geëvalueerd telkens wanneer een prompt wordt weergegeven):

PS1='${USER:=$(id -un)}'"@${HOSTNAME:=$(hostnaam)}:\$PWD $(
als (( USER_ID )); print dan \$; druk anders \#; fi) "

Merk op dat aangezien de opdrachtregeleditors proberen te achterhalen hoe lang de prompt
is (zodat ze weten hoe ver het is tot de rand van het scherm), escapecodes in de
prompt hebben de neiging om dingen te verpesten. Je kunt de shell vertellen om niet zeker te tellen
reeksen (zoals ontsnappingscodes) door uw prompt vooraf te laten gaan door een teken
(zoals Ctrl-A) gevolgd door een regelterugloop en vervolgens de escape begrenzen
codes met dit teken. Elk voorkomen van dat teken in de prompt is
niet afgedrukt. Trouwens, geef mij niet de schuld van deze hack; het is afgeleid van de
origineel KSH88(1), die het scheidingsteken wel heeft afgedrukt, dus je was uit
geluk als je geen niet-afdrukbare karakters had.

Aangezien backslashes en andere speciale tekens kunnen worden geïnterpreteerd door de shell,
om PS1 in te stellen, vermijdt u de backslash zelf of gebruikt u dubbele aanhalingstekens. De
laatste is praktischer. Dit is een complexer voorbeeld, waarbij rechtstreeks wordt vermeden
voer speciale tekens in (bijvoorbeeld met ^V in de emacs-bewerkingsmodus), welke
sluit de huidige werkdirectory in, in omgekeerde video (kleur zou werken,
ook), in de promptstring:

x=$(afdrukken \\001)
PS1="$x$(print \\r)$x$(tput so)$x\$PWD$x$(tput se)$x> "

Vanwege een sterke suggestie van David G. Korn, Bedankt ondersteunt nu ook de
volgend formulier:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

PS2 Secundaire promptstring, standaard '> ', gebruikt wanneer er meer invoer nodig is
voer een opdracht uit.

PS3 Prompt gebruikt door de kiezen verklaring bij het lezen van een menuselectie. De standaard
is '#? '.

PS4 Wordt gebruikt om opdrachten vooraf te laten gaan die worden afgedrukt tijdens het traceren van de uitvoering (zie de reeks
-x opdracht hieronder). Parameter-, commando- en rekenkundige vervangingen zijn dat wel
uitgevoerd voordat het wordt afgedrukt. De standaardwaarde is '+'. Misschien wil je het instellen
in plaats daarvan naar '[$EPOCHREALTIME] ' om tijdstempels op te nemen.

PWD De huidige werkdirectory. Kan unset of NULL zijn als de shell het niet weet
waar het is.

RANDOM Elke keer dat naar RANDOM wordt verwezen, wordt een nummer tussen 0 en 32767 toegewezen
van een lineaire congruentieel PRNG eerst.

ANTWOORD Standaardparameter voor de dit artikel lezen commando als er geen namen zijn opgegeven. Ook gebruikt in
kiezen lussen om de waarde op te slaan die wordt gelezen van standaardinvoer.

SECONDEN Het aantal seconden sinds de shell is gestart of, als de parameter is gestart
een geheel getal toegewezen, het aantal seconden sinds de toewijzing plus de
waarde die werd toegekend.

TMOUT Indien ingesteld op een positief geheel getal in een interactieve shell, specificeert het het maximum
aantal seconden dat de shell op invoer zal wachten na het afdrukken van de primaire
prompt (PS1). Als de tijd wordt overschreden, wordt de shell afgesloten.

TMPDIR De map waarin tijdelijke shell-bestanden worden gemaakt. Als deze parameter dat niet is
set, of bevat niet het absolute pad van een beschrijfbare map, tijdelijk
bestanden worden aangemaakt in / tmp.

USER_ID De effectieve gebruikers-ID van de shell.

tilde uitbreiding
Tilde-expansie die parallel met parametersubstitutie wordt uitgevoerd, wordt op woorden gedaan
beginnend met een niet-geciteerde '~'. De tekens na de tilde, tot aan de eerste '/', if
any, worden verondersteld een inlognaam te zijn. Als de inlognaam leeg is, '+' of '-', is de waarde van
de parameter HOME, PWD of OLDPWD wordt respectievelijk vervangen. Anders het wachtwoord
bestand wordt doorzocht op de inlognaam en de tilde-expressie wordt vervangen door die van de gebruiker
thuismap. Als de inlognaam niet wordt gevonden in het wachtwoordbestand of als er citaten of
parametervervanging vindt plaats in de loginnaam, er wordt geen vervanging uitgevoerd.

In parametertoewijzingen (zoals die voorafgaand aan een enkelvoudig commando of die voorkomen in de
argumenten van alias, exporteren, globaal, alleen lezen en gezet), tilde-uitbreiding wordt daarna gedaan
elke toewijzing (dwz na het gelijkteken) of na een niet-geciteerde dubbele punt (':'); login namen
worden ook gescheiden door dubbele punten.

De basismap van eerder uitgebreide inlognamen wordt in de cache opgeslagen en opnieuw gebruikt. De alias -d
commando kan worden gebruikt om deze cache op te sommen, te wijzigen en toe te voegen (bijv alias -d
fac=/usr/local/faciliteiten; cd ~gezicht/bak).

Beugel uitbreiding (afwisseling)
Brace-expressies hebben de volgende vorm:

voorvoegsel{str1, ...,strN}achtervoegsel

De uitdrukkingen worden uitgebreid naar N woorden, die elk de aaneenschakeling zijn van voorvoegsel, stri,
en achtervoegsel (bijv. "a{c,b{X,Y},d}e" wordt uitgebreid tot vier woorden: "ace", "abXe", "abYe" en "ade").
Zoals opgemerkt in het voorbeeld, kunnen uitdrukkingen met accolades worden genest en de resulterende woorden niet
gesorteerd. Uitdrukkingen met accolades moeten een komma zonder aanhalingstekens (',') bevatten om te kunnen uitbreiden (bijv
{} en {foe} worden niet uitgebreid). Brace-expansie wordt uitgevoerd na parametersubstitutie
en vóór het genereren van de bestandsnaam.

Dien in naam patronen
Een bestandsnaampatroon is een woord dat een of meer niet-geciteerde '?', '*', '+', '@' of '!' bevat.
karakters of "[..]" reeksen. Zodra de brace-expansie is uitgevoerd, wordt de schaal vervangen
bestandsnaampatronen met de gesorteerde namen van alle bestanden die overeenkomen met het patroon (indien nr
bestanden komen overeen, het woord blijft ongewijzigd). De patroonelementen hebben de volgende betekenis:

? Komt overeen met elk afzonderlijk teken.

* Komt overeen met elke reeks octetten.

[..] Komt overeen met een van de octetten binnen de haakjes. Bereiken van octetten kunnen worden gespecificeerd door
twee octetten scheiden door een '-' (bijv. "[a0-9]" komt overeen met de letter 'a' of een willekeurig cijfer).
Om zichzelf weer te geven, moet een '-' tussen aanhalingstekens of het eerste of laatste octet staan
in de octetlijst. Evenzo moet een ']' tussen aanhalingstekens of het eerste octet in de lijst staan
als het zichzelf moet vertegenwoordigen in plaats van het einde van de lijst. Ook een '!' verschijnen
aan het begin van de lijst heeft een speciale betekenis (zie hieronder), dus om zichzelf te vertegenwoordigen
moet worden geciteerd of later in de lijst voorkomen.

[!..] Zoals [..], behalve dat het overeenkomt met elk octet dat niet tussen de haakjes staat.

*(patroon|...|patroon)
Komt overeen met elke tekenreeks van octetten die overeenkomt met nul of meer instanties van de opgegeven
patronen. Voorbeeld: het patroon *(foe|bar) komt overeen met de tekenreeksen "", "foo", "bar",
"foobarfoo", enz.

+(patroon|...|patroon)
Komt overeen met elke reeks octetten die overeenkomt met een of meer exemplaren van de opgegeven
patronen. Voorbeeld: het patroon +(foe|bar) komt overeen met de tekenreeksen "foo", "bar",
"foob", enz.

?(patroon|...|patroon)
Komt overeen met de lege tekenreeks of een tekenreeks die overeenkomt met een van de opgegeven patronen.
Voorbeeld: het patroon ?(foe|bar) komt alleen overeen met de tekenreeksen "", "foo" en "bar".

@(patroon|...|patroon)
Komt overeen met een tekenreeks die overeenkomt met een van de opgegeven patronen. Voorbeeld: het patroon
@(foe|bar) komt alleen overeen met de tekenreeksen "foo" en "bar".

!(patroon|...|patroon)
Komt overeen met elke tekenreeks die niet overeenkomt met een van de opgegeven patronen. Voorbeelden: De
patroon !(fo|bar) komt overeen met alle tekenreeksen behalve "foo" en "bar"; het patroon !(*)
komt zonder verplichtingen overeen; het patroon !(?)* komt overeen met alle strings (denk er eens over na).

Merk op dat ingewikkelde globbing, vooral met alternatieven, traag is; apart gebruiken
vergelijkingen kunnen (of niet) sneller zijn.

Merk op dat Bedankt (En pdksh) komt nooit overeen met '.' en '..', maar AT&T UNIX ksh, Bourne sh, en GNU
slaan doen.

Merk op dat geen van de bovenstaande patroonelementen overeenkomt met een punt ('.') aan het begin van een
bestandsnaam of een schuine streep ('/'), zelfs als ze expliciet in een [..] reeks worden gebruikt; ook de
namen '.' en '..' komen nooit overeen, zelfs niet door het patroon '.*'.

Indien de markeerdirs optie is ingesteld, zijn alle mappen die het resultaat zijn van het genereren van bestandsnamen
gemarkeerd met een afsluitende '/'.

Input / output omleiding
Wanneer een opdracht wordt uitgevoerd, worden de standaardinvoer, standaarduitvoer en standaardfout (file
descriptoren respectievelijk 0, 1 en 2) worden normaal gesproken geërfd van de shell. Drie
uitzonderingen hierop zijn commando's in pijplijnen, waarvoor standaard invoer en/of standaard
output zijn die welke zijn ingesteld door de pijplijn, asynchrone opdrachten die zijn gemaakt wanneer taakcontrole is
uitgeschakeld, waarvoor de standaardinvoer aanvankelijk is ingesteld als zijnde / Dev / null, en commando's voor
waarvoor een van de volgende omleidingen is opgegeven:

>filet Standaarduitvoer wordt omgeleid naar filet. Indien filet bestaat niet, het is gemaakt;
als het bestaat, is het een regulier bestand en het geen gek optie is ingesteld, een fout
komt voor; anders wordt het bestand afgekapt. Merk op dat dit de opdracht betekent cmd
<foe >foe zal openen foo voor lezen en kap het vervolgens af wanneer het wordt geopend voor
schrijven, voor cmd krijgt de kans om echt te lezen foo.

>|filet Hetzelfde als >, behalve dat het bestand wordt afgekapt, zelfs als de geen gek optie is ingesteld.

>>filet Hetzelfde als >, behalve als filet bestaat waaraan het wordt toegevoegd in plaats van wordt afgekapt.
Het bestand wordt ook geopend in append-modus, dus schrijfbewerkingen gaan altijd naar het einde van het
bestand (zie open(2)).

<filet Standaard invoer wordt omgeleid van filet, die wordt geopend om te lezen.

<>filet Hetzelfde als <, behalve dat het bestand wordt geopend voor lezen en schrijven.

<<marker Na het lezen van de opdrachtregel die dit soort omleiding bevat (a
"hier document"), kopieert de shell regels van de opdrachtbron naar een
tijdelijk bestand tot een overeenkomende regel marker is gelezen. Wanneer de opdracht is
uitgevoerd, wordt de standaardinvoer omgeleid vanuit het tijdelijke bestand. Als marker
geen tekens tussen aanhalingstekens bevat, wordt de inhoud van het tijdelijke bestand verwerkt
alsof elke keer dat de opdracht wordt uitgevoerd tussen dubbele aanhalingstekens staat, dus parameter,
commando, en rekenkundige vervangingen worden uitgevoerd, samen met backslash ('\')
escapes voor '$', '`', '\' en '\newline', maar niet voor '"'. Indien meerdere hier
documenten op dezelfde opdrachtregel worden gebruikt, worden ze op volgorde opgeslagen.

Zo nee marker wordt gegeven, eindigt het document hier bij het volgende << en vervanging
zal worden uitgevoerd. Als marker is slechts een set van ofwel enkele "''" of dubbele '""'
aanhalingstekens met niets ertussen, eindigt het hier-document op de volgende lege regel
en vervanging zal niet worden uitgevoerd.

<<-marker Hetzelfde als <<, behalve dat voorlooptabs worden verwijderd van regels in het hier document.

<<woord Hetzelfde als <<, behalve dat woord is het hier-document. Dit heet een hier
string.

<&fd Standaardinvoer wordt gedupliceerd vanuit de bestandsbeschrijving fd. fd kan een getal zijn,
het nummer aangeven van een bestaande bestandsdescriptor; de letter 'p', wat aangeeft
de bestandsdescriptor die is gekoppeld aan de uitvoer van het huidige co-proces; of de
teken '-', waarmee wordt aangegeven dat de standaardinvoer moet worden gesloten. Let daar op fd is
beperkt tot een enkel cijfer in de meeste shell-implementaties.

>&fd Hetzelfde als <&, behalve dat de bewerking wordt uitgevoerd op standaarduitvoer.

&>filet Hetzelfde als >filet 2> & 1. Dit is een verouderde (verouderde) GNU slaan extensie ondersteund
by Bedankt die ook het voorgaande expliciete fd-nummer ondersteunt, bijvoorbeeld
3&>filet is hetzelfde als 3>filet 2> & 3 in Bedankt maar een syntaxisfout in GNU slaan.

&>|filet, &>>filet, &>&fd
Hetzelfde als >|filet, >>filetof >&fd, Gevolgd door 2> & 1, zoals hierboven. Dit zijn Bedankt
extensies.

Bij elk van de bovenstaande omleidingen wordt de bestandsdescriptor die wordt omgeleid (dwz standaard
invoer of standaarduitvoer) kan expliciet worden opgegeven door de omleiding te laten voorafgaan door een nummer
(draagbaar, slechts één cijfer). Parameter-, commando- en rekenkundige vervangingen, tilde
vervangingen en (als de shell interactief is) het genereren van bestandsnamen worden allemaal uitgevoerd
de filet, marker en fd argumenten van omleidingen. Merk echter op dat de resultaten van elke
het genereren van bestandsnamen wordt alleen gebruikt als een enkel bestand overeenkomt; als meerdere bestanden overeenkomen, de
woord met de tekens voor het genereren van de uitgebreide bestandsnaam wordt gebruikt. Merk op dat in beperkt
shells, omleidingen die bestanden kunnen maken, kunnen niet worden gebruikt.

Voor eenvoudige commando's kunnen omleidingen overal in het commando verschijnen; voor samengestelde commando's
(if verklaringen, enz.), moeten eventuele omleidingen aan het einde verschijnen. Omleidingen worden verwerkt
nadat pijplijnen zijn gemaakt en in de volgorde waarin ze zijn gegeven, dus het volgende zal een
fout met een regelnummer ervoor:

$ cat /foo/bar 2>&1 >/dev/null | pr -n -t

Bestandsbeschrijvingen gemaakt door I/O-omleidingen zijn privé voor de shell.

Rekenkunde uitdrukkingen
Rekenkundige uitdrukkingen met gehele getallen kunnen worden gebruikt met de laten commando, binnen $((..)) uitdrukkingen,
interne array-referenties (bijv naam[uitdrukken]), als numerieke argumenten voor de proef bevel, en als
de waarde van een toewijzing aan een parameter met een geheel getal. waarschuwing: Dit heeft ook invloed op impliciet
conversie naar integer, bijvoorbeeld zoals gedaan door de laten opdracht. nooit gebruik ongecontroleerde gebruiker
invoer, bijv. vanuit de omgeving, in rekenen!

Uitdrukkingen worden berekend met behulp van rekenkundige tekens met teken en de mksh_ari_t type (een 32-bits ondertekend
geheel getal), tenzij ze beginnen met een enkel '#'-teken, in welk geval ze gebruiken mksh_uari_t (a
32-bits geheel getal zonder teken).

Uitdrukkingen kunnen alfanumerieke parameter-ID's, matrixverwijzingen en gehele getallen bevatten
constanten en kan worden gecombineerd met de volgende C-operators (vermeld en gegroepeerd in
oplopende volgorde van prioriteit):

Unaire operatoren:

+ -! ~ ++ --

Binaire operatoren:

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


<<< >>> << >>



Ternaire operatoren:

?: (voorrang is direct hoger dan toewijzing)

Operators groeperen:

()

Integerconstanten en -uitdrukkingen worden berekend met een exact 32-bits breed teken of
niet-ondertekend, typ met stille omhulling bij overloop van gehele getallen. Gehele constanten kunnen zijn
gespecificeerd met willekeurige bases met behulp van de notatie baseren#aantal, Waar baseren is een decimaal
geheel getal dat de basis specificeert, en aantal is een getal in het opgegeven grondtal. Aanvullend,
gehele getallen met grondtal 16 kunnen worden opgegeven door ze in totaal te laten prefixen met '0x' (niet hoofdlettergevoelig).
vormen van rekenkundige uitdrukkingen, behalve als numerieke argumenten voor de proef ingebouwde opdracht.
Het voorvoegsel van getallen met een enkel cijfer nul ('0') leidt niet tot interpretatie als octaal, zoals
dat is onveilig om te doen.

als een special Bedankt extensie, worden getallen tot het grondtal van één behandeld als (8-bit
transparant) ASCII- of Unicode-codepunten, afhankelijk van de shell utf8-modus vlag (huidig
instelling). De AT&T UNIX KSH93 syntax van “'x'” in plaats van “1#x” wordt ook ondersteund. Opmerking
dat NUL bytes (integrale waarde van nul) niet kunnen worden gebruikt. Een uitgeschakelde of lege parameter
resulteert in 0 in integer-context. In Unicode-modus worden onbewerkte octetten toegewezen aan het bereik
EF80..EFFF zoals in OPTU-8, dat zich in de PUA bevindt en door CSUR is toegewezen voor dit gebruik. Als
meer dan één octet in ASCII-modus, of een reeks van meer dan één octet vormt geen geldig
en minimale CESU-8-reeks wordt doorgegeven, is het gedrag ongedefinieerd (meestal breekt de shell af
met een ontleedfout, maar zelden lukt het, bijvoorbeeld op de reeks C2 20). Daarom jij
moet altijd de ASCII-modus gebruiken, tenzij u weet dat de invoer goed gevormd UTF-8 is in de
bereik van 0000..FFFD als u deze functie gebruikt, in tegenstelling tot dit artikel lezen -a.

De operators worden als volgt beoordeeld:

unaire +
Resultaat is het argument (voor de volledigheid opgenomen).

unair -
Ontkenning.

! Logisch NIET; het resultaat is 1 als het argument nul is, 0 als dat niet het geval is.

~ Rekenkundig (bitsgewijs) NIET.

++ Toename; moet worden toegepast op een parameter (geen letterlijke of andere uitdrukking).
De parameter wordt verhoogd met 1. Bij gebruik als prefix-operator, het resultaat
is de verhoogde waarde van de parameter; bij gebruik als postfix-operator,
het resultaat is de oorspronkelijke waarde van de parameter.

-- Gelijkwaardig aan ++, behalve dat de parameter met 1 wordt verlaagd.

, Scheidt twee rekenkundige uitdrukkingen; de linkerkant wordt eerst geëvalueerd,
dan rechts. Het resultaat is de waarde van de uitdrukking aan de rechterkant
kant.

= Opdracht; de variabele aan de linkerkant is ingesteld op de waarde aan de rechterkant.

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
Toewijzing operators.var><op>=uitdrukken> is hetzelfde alsvar>=var><op><uitdrukken>,
met enige operatorvoorranguitdrukken> behouden. Bijvoorbeeld: “var1 *= 5 +
3" is hetzelfde als het specificeren van "var1 = var1 * (5 + 3)".

|| Logische OF; het resultaat is 1 als een van beide argumenten niet nul is, 0 als dat niet het geval is. De
rechterargument wordt alleen geëvalueerd als het linkerargument nul is.

&& Logische EN; het resultaat is 1 als beide argumenten niet nul zijn, 0 als dat niet het geval is. De
rechterargument wordt alleen geëvalueerd als het linkerargument niet nul is.

| Rekenen (bitsgewijs) OF.

^ Rekenkundig (bitsgewijs) XOR (exclusief-OF).

& Rekenen (bitsgewijs) EN.

== Gelijk; het resultaat is 1 als beide argumenten gelijk zijn, 0 als dat niet het geval is.

!= Niet gelijk; het resultaat is 0 als beide argumenten gelijk zijn, 1 als dat niet het geval is.

< Minder dan; het resultaat is 1 als het linkerargument kleiner is dan het rechterargument, 0 als
niet.

<= > >=
Kleiner dan of gelijk aan, groter dan, groter dan of gelijk aan. Zien <.

<<< >>>
Draai naar links (rechts); het resultaat is vergelijkbaar met shift (zie <<) behalve dat de
bits die aan het ene uiteinde naar buiten zijn verschoven, worden aan het andere uiteinde naar binnen geschoven in plaats van nul
of teken stukjes.

<< >> Verschuiving naar links (rechts); het resultaat is het linkerargument waarvan de bits naar links zijn verschoven
(rechts) door het bedrag dat in het juiste argument wordt gegeven.

+ - * /
Optellen, aftrekken, vermenigvuldigen en delen.

% Rest; het resultaat is de symmetrische rest van de deling van links
argument van rechts. Om de wiskundige modulus van "a mod b”, gebruik de
formule “(a % b + b) % b”.

<arg1>?arg2>:arg3>
Alsarg1> is niet nul, het resultaat isarg2>; anders is het resultaatarg3>.
Het niet-resultaatargument wordt niet geëvalueerd.

Co-processen
Een co-proces (een pijplijn die is gemaakt met de operator '|&') is een asynchroon proces
waar de shell zowel naar kan schrijven (met behulp van print -p) en lezen van (met behulp van dit artikel lezen -p). De invoer
en output van het co-proces kan ook worden gemanipuleerd met behulp van >&p en <& p omleidingen,
respectievelijk. Zodra een co-proces is gestart, kan een ander niet worden gestart totdat de co-
proces wordt afgesloten, of totdat de invoer van het co-proces is omgeleid met behulp van een exec n>&p
omleiding. Als de invoer van een co-proces op deze manier wordt omgeleid, is het volgende co-proces aan de beurt
gestart zal de output delen met het eerste co-proces, tenzij de output van de initiële
co-proces is omgeleid met behulp van een exec n<& p omleiding.

Enkele opmerkingen met betrekking tot co-processen:

· De enige manier om de input van het co-proces te sluiten (zodat het co-proces een end-of-file leest) is
om de invoer om te leiden naar een genummerde bestandsbeschrijving en die bestandsbeschrijving vervolgens te sluiten:
exec 3>&p; exec 3>&-

· Om co-processen een gemeenschappelijke uitvoer te laten delen, moet de shell het schrijven behouden
gedeelte van de uitvoerleiding open. Dit betekent dat het einde van het bestand pas wordt gedetecteerd
alle co-processen die de uitvoer van het co-proces delen, zijn afgesloten (wanneer ze allemaal worden afgesloten, wordt het
shell sluit zijn kopie van de pijp). Dit kan worden voorkomen door de uitvoer om te leiden naar een
genummerde bestandsdescriptor (omdat dit er ook voor zorgt dat de shell zijn kopie sluit). Let daar op
dit gedrag wijkt enigszins af van de originele Korn-shell die de kopie sluit
van het schrijfgedeelte van de uitvoer van het co-proces wanneer het meest recent gestarte co-proces
(in plaats van wanneer alle gedeelde co-processen) wordt afgesloten.

· print -p negeert SIGPIPE-signalen tijdens het schrijven als het signaal niet wordt opgevangen of
buiten beschouwing gelaten; hetzelfde geldt als de co-procesinvoer is gedupliceerd naar een ander bestand
descriptor en print -un is gebruikt.

Functies
Functies worden gedefinieerd met behulp van Korn-shell functie functienaam syntaxis of de
Bourne/POSIX-shell functienaam() syntaxis (zie hieronder voor het verschil tussen de twee
formulieren). Functies zijn daarin vergelijkbaar met .‐scripts (dwz scripts die afkomstig zijn van de ingebouwde '.').
ze worden uitgevoerd in de huidige omgeving. Echter, in tegenstelling tot .‐scripts, zijn shell-argumenten
(dwz positionele parameters $1, $2, enz.) zijn daarin nooit zichtbaar. Wanneer de schil is
het bepalen van de locatie van een commando, functies worden gezocht na speciaal ingebouwd
commando's, voordat ingebouwde en het PATH wordt doorzocht.

Een bestaande functie kan worden verwijderd met uitgeschakeld -f functienaam. Een lijst met functies kan
worden verkregen met behulp van gezet +f en de functiedefinities kunnen worden vermeld met behulp van gezet -f.
De autoload commando (wat een alias is voor gezet -fu) kan worden gebruikt om undefined te maken
functies: wanneer een ongedefinieerde functie wordt uitgevoerd, doorzoekt de shell het pad dat is opgegeven in
de parameter FPATH voor een bestand met dezelfde naam als de functie die, indien gevonden, wordt gelezen
en geëxecuteerd. Als na het uitvoeren van het bestand blijkt dat de benoemde functie gedefinieerd is, wordt het
functie wordt uitgevoerd; anders wordt het normale zoeken naar commando's voortgezet (dwz de shell
doorzoekt de reguliere ingebouwde commandotabel en PATH). Merk op dat als een opdracht niet wordt gevonden
met PATH wordt geprobeerd een functie automatisch te laden met behulp van FPATH (dit is een ongedocumenteerd
kenmerk van de originele Korn-schaal).

Functies kunnen twee attributen hebben, "trace" en "export", die kunnen worden ingesteld met gezet -ft
en gezet -fx, respectievelijk. Wanneer een getraceerde functie wordt uitgevoerd, wordt de shell's xspoor
optie is ingeschakeld voor de duur van de functie. Het kenmerk "exporteren" van functies is
momenteel niet gebruikt. In de originele Korn-shell zijn geëxporteerde functies zichtbaar voor de shell
scripts die worden uitgevoerd.

Aangezien functies worden uitgevoerd in de huidige shell-omgeving, zijn parametertoewijzingen gemaakt
interne functies zijn zichtbaar nadat de functie is voltooid. Mocht dit niet naar wens zijn
effect, de gezet commando kan binnen een functie worden gebruikt om een ​​lokale parameter te maken. Opmerking
dat AT&T UNIX KSH93 maakt gebruik van statische scoping (één globale scope, één lokale scope per functie)
en staat alleen lokale variabelen toe op functies in Korn-stijl, terwijl Bedankt maakt gebruik van dynamische scoping
(geneste scopes van verschillende locaties). Merk op dat speciale parameters (bijv $$, $!) kan niet
op deze manier gescoord.

De exit-status van een functie is die van de laatste opdracht die in de functie is uitgevoerd. EEN
functie kan worden gemaakt om onmiddellijk te eindigen met behulp van de terugkeer opdracht; dit kan ook worden gebruikt
om de uitgangsstatus expliciet te specificeren.

Functies gedefinieerd met de functie gereserveerde woorden worden hierna anders behandeld
wegen van functies gedefinieerd met de () notatie:

· De parameter $0 wordt ingesteld op de naam van de functie (functies in Bourne-stijl laten $0
onaangeroerd).

· Parametertoewijzingen voorafgaand aan functieaanroepen worden niet bewaard in de shell-omgeving
(het uitvoeren van functies in Bourne-stijl behoudt de toewijzingen).

· OPTIND wordt opgeslagen/gereset en hersteld bij het betreden en verlaten van de functie dus getopt kan zijn
correct gebruikt zowel binnen als buiten de functie (functies in Bourne-stijl verlaten OPTIND
onaangeroerd, dus gebruikt getopt binnen een functie verstoort het gebruik getopt buiten de
functie).

· Shell-opties (reeks -o) hebben een lokaal bereik, dwz wijzigingen binnen een functie worden gereset
zijn uitgang.

In de toekomst kunnen ook de volgende verschillen worden toegevoegd:

· Tijdens het uitvoeren van functies wordt een aparte trap/signaalomgeving gebruikt. Dit
betekent dat traps die binnen een functie zijn ingesteld geen invloed hebben op de traps en signalen van de shell
die niet worden genegeerd in de shell (maar mogelijk vastzitten) hebben hun standaardeffect in
een functie.

· De EXIT-trap, indien ingesteld in een functie, wordt uitgevoerd nadat de functie terugkeert.

commando uitvoering
Na evaluatie van opdrachtregelargumenten, omleidingen en parametertoewijzingen, wordt het
type commando wordt bepaald: een speciaal ingebouwd commando, een functie, een normaal ingebouwd commando, of
de naam van een uit te voeren bestand gevonden met behulp van de parameter PATH. De controles vinden plaats in de
bovenstaande bestelling. Speciale ingebouwde commando's verschillen van andere commando's doordat de PATH
parameter niet wordt gebruikt om ze te vinden, kan een fout tijdens de uitvoering een niet-
interactieve shell om af te sluiten, en parametertoewijzingen die vóór de opdracht worden opgegeven
worden bewaard nadat de opdracht is voltooid. Reguliere ingebouwde commando's zijn alleen daarin anders
de parameter PATH wordt niet gebruikt om ze te vinden.

De oorspronkelijke ksh en POSIX verschillen enigszins in welke commando's als speciaal of worden beschouwd
regelmatig.

POSIX speciale ingebouwde hulpprogramma's:

., :, breken, voortzetten, eval, exec, afrit, exporteren, alleen lezen, terugkeer, reeks, verschuiving, keer, val,
uitgeschakeld

Extra Bedankt commando's houden opdrachten:

ingebouwde, globaal, (bron), gezet, wachten

Gebouwen die niet speciaal zijn:

[, alias, bg, binden, hoe, cd, commando, echo, vals, fc, fg, getopt, vacatures, doden, laten, print,
pwd, dit artikel lezen, echt pad, andere naam geven, slaap, opschorten, proef, waar, ulimit, umasker, alias, waar vandaan

Zodra het type opdracht is bepaald, zijn alle opdrachtregelparametertoewijzingen dat ook
uitgevoerd en geëxporteerd voor de duur van de opdracht.

Het volgende beschrijft de speciale en reguliere ingebouwde commando's en ingebouwde-achtige gereserveerd
woorden:

. filet [arg ...]
Dit wordt het "punt"-commando genoemd. Voer de opdrachten uit in filet in de huidige
omgeving. Het bestand wordt gezocht in de mappen van PATH. Als argumenten zijn
gegeven, kunnen de positionele parameters worden gebruikt om er toegang toe te krijgen terwijl filet is aan het zijn
uitgevoerd. Als er geen argumenten worden gegeven, zijn de positionele parameters die van de
omgeving waarin de opdracht wordt gebruikt.

: [...]
Het null-commando. Uitgangsstatus is op nul gezet.

[ uitdrukking ]
Bekijk proef.

alias [-d | -t [-r+-x] [-p] [+] [naam [=waarde] ...]
Zonder argumenten, alias somt alle aliassen op. Voor elke naam zonder waarde, de
bestaande alias wordt weergegeven. Elke naam met een waarde definieert een alias (zie Aliassen
bovenstaande).

Bij het vermelden van aliassen wordt een van de twee indelingen gebruikt. Normaal gesproken worden aliassen weergegeven als
naam=waarde, Waar waarde wordt geciteerd. Als opties werden voorafgegaan door '+', of een enkele '+'
wordt alleen op de opdrachtregel gegeven naam wordt afgedrukt.

De -d optie zorgt ervoor dat directory-aliassen die worden gebruikt in tilde-uitbreiding worden weergegeven
of stel (zie tilde uitbreiding bovenstaande).

Indien de -p optie wordt gebruikt, wordt elke alias voorafgegaan door de tekenreeks "alias".

De -t optie geeft aan dat bijgehouden aliassen moeten worden vermeld/ingesteld (waarden gespecificeerd
op de opdrachtregel worden genegeerd voor bijgehouden aliassen). De -r optie geeft dat aan
alle bijgehouden aliassen moeten worden gereset.

De -x optiesets (+x wist) het exportattribuut van een alias, of, als er geen namen zijn
gegeven, somt de aliassen op met het exportattribuut (het exporteren van een alias heeft geen
effect).

bg [baan ...]
Hervat de opgegeven gestopte taak(en) op de achtergrond. Als er geen taken zijn opgegeven, %+
wordt verondersteld. Zien Jobomschrijving: onder controle te houden hieronder voor meer informatie.

binden [-l]
De huidige bindingen worden weergegeven. Als de -l vlag wordt gegeven, binden vermeldt in plaats daarvan de
namen van de functies waaraan toetsen gebonden kunnen zijn. Zien Emacs editing mode meer
informatie.

binden [-m] snaar=[vervanging] ...
binden snaar=[bewerkingsopdracht] ...
Het opgegeven bewerkingscommando is gebonden aan het gegeven snaar, die zou moeten bestaan ​​uit een
controleteken eventueel voorafgegaan door een van de twee prefixtekens en
eventueel gevolgd door een tilde-teken. Toekomstige inbreng van de snaar zal de
bewerkingsopdracht die onmiddellijk moet worden aangeroepen. Als de -m vlag wordt gegeven, de opgegeven
invoer snaar wordt daarna direct vervangen door het gegeven vervanging snaar
die bewerkingsopdrachten kan bevatten, maar geen andere macro's. Als een tilde achtervoegsel is
gegeven, wordt een tilde achter de een of twee voorvoegsels en het besturingsteken genegeerd,
elk ander volgteken wordt achteraf verwerkt.

Stuurtekens kunnen worden geschreven met dakje-notatie, dwz ^X staat voor Ctrl-X.
Merk op dat hoewel slechts twee prefix-tekens (meestal ESC en ^X) worden ondersteund,
sommige reeksen met meerdere tekens kunnen worden ondersteund.

De volgende standaardbindingen laten zien hoe de pijltjestoetsen, de home-, end- en delete-toets werken
op een BSD zijn wsvt25, xterm-xfree86 of GNU-schermterminal gebonden (sommige natuurlijk
ontsnappingsreeksen zullen niet zo mooi uitpakken):

bind '^X'=prefix-2
bind '^[['=prefix-2
bind '^XA'=up-geschiedenis
bind '^XB'=down-geschiedenis
bind '^XC'=forward-char
bind '^XD'=backward-char
bind '^X1~'=begin-van-regel
bind '^X7~'=begin-van-regel
bind '^XH'=begin-van-regel
bind '^X4~'=einde regel
bind '^X8~'=einde regel
bind '^XF'=end-of-line
bind '^X3~'=delete-char-forward

breken [niveau]
Verlaat de niveaue binnenste For, kiezen, totof en lus. niveau staat standaard op 1.

ingebouwde [--] commando [arg ...]
Voer de ingebouwde opdracht uit commando.

hoe [-u] [filet ...]
Lees bestanden opeenvolgend, in opdrachtregelvolgorde, en schrijf ze naar standaarduitvoer.
Als een filet is een enkel streepje ('-') of afwezig, gelezen uit standaardinvoer. Voor direct
ingebouwde oproepen, de POSIX -u optie wordt ondersteund als een no-op. Voor oproepen van shell, als
alle opties worden gegeven, een externe hoe(1) hulpprogramma heeft de voorkeur boven het ingebouwde.

cd [-L] [dir]
cd -P [-e] [dir]
chdir [-eLP] [dir]
Stel de werkmap in op dir. Als de parameter CDPATH is ingesteld, wordt de
zoekpad naar de map met dir. Een NULL-pad betekent de stroom
map. Indien dir wordt gevonden in een ander onderdeel van het CDPATH-zoekpad dan het
NULL-pad, de naam van de nieuwe werkdirectory wordt naar de standaarduitvoer geschreven.
If dir ontbreekt, wordt de homedirectory HOME gebruikt. Als dir is '-', de vorige
werkmap wordt gebruikt (zie de parameter OLDPWD).

Indien de -L optie (logisch pad) wordt gebruikt of als de Fysiek optie is niet ingesteld (zie de
reeks commando hieronder), verwijzingen naar '..' in dir zijn relatief ten opzichte van het pad dat wordt gebruikt om er te komen
de map. Als de -P optie (fysiek pad) wordt gebruikt of als de Fysiek Optie is
set, '..' is relatief ten opzichte van de mappenstructuur van het bestandssysteem. De PWD en OLDPWD
parameters worden bijgewerkt om de huidige en oude werkdirectory weer te geven,
respectievelijk. Als de -e optie is ingesteld voor het doorlopen van het fysieke bestandssysteem en PWD
kon niet worden ingesteld, de exitcode is 1; groter dan 1 als er een fout is opgetreden, 0
anders.

cd [-eLP] oud nieuwe
chdir [-eLP] oud nieuwe
De snaar nieuwe wordt vervangen door oud in de huidige map en de shell
probeert over te schakelen naar de nieuwe map.

commando [-pVv] cmd [arg ...]
Als geen van beide -v noch -V optie wordt gegeven, cmd wordt precies uitgevoerd alsof commando HAD
niet gespecificeerd, met twee uitzonderingen: ten eerste, cmd kan geen shell-functie zijn; En
ten tweede verliezen speciale ingebouwde commando's hun speciaalheid (dwz omleiding en
hulpprogramma-fouten zorgen er niet voor dat de shell wordt afgesloten, en opdrachttoewijzingen niet
blijvend).

Indien de -p optie wordt gegeven, wordt een standaard zoekpad gebruikt in plaats van de huidige waarde
van PATH, waarvan de werkelijke waarde systeemafhankelijk is.

Indien de -v optie wordt gegeven, in plaats van uitvoeren cmd, informatie over wat zou zijn
uitgevoerd wordt gegeven (en hetzelfde wordt gedaan voor arg ...). Voor inbouwapparatuur, functies en
trefwoorden, hun namen worden eenvoudigweg afgedrukt; voor aliassen is een commando dat ze definieert
gedrukt; voor hulpprogramma's die zijn gevonden door de PATH-parameter te doorzoeken, het volledige pad van het
opdracht wordt afgedrukt. Als er geen opdracht wordt gevonden (dwz het zoeken naar het pad mislukt), is er niets
gedrukt en commando wordt afgesloten met een status die niet gelijk is aan nul. De -V optie is als de -v
optie, behalve dat het uitgebreider is.

voortzetten [niveau]
Springt naar het begin van de niveaue binnenste For, kiezen, totof en lus.
niveau staat standaard op 1.

echo [-Een] [arg ...]
Waarschuwing: dit hulpprogramma is niet draagbaar; gebruik de ingebouwde Korn-shell print gebruiken.

Drukt zijn argumenten af ​​(gescheiden door spaties) gevolgd door een nieuwe regel, naar de standaard
uitgang. De nieuwe regel wordt onderdrukt als een van de argumenten de backslash bevat
volgorde '\c'. Zie de print onderstaande opdracht voor een lijst met andere backslash-reeksen
die worden erkend.

De opties zijn bedoeld voor compatibiliteit met BSD-shellscripts. De -n optie
onderdrukt de afsluitende nieuwe regel, -e maakt backslash-interpretatie mogelijk (een no-op, aangezien
dit wordt normaal gesproken gedaan), en -E onderdrukt de backslash-interpretatie.

Indien de posix or sh optie is ingesteld of dit is een direct ingebouwd gesprek, alleen de eerste
argument wordt behandeld als een optie, en alleen als het precies "-n”. Backslash
interpretatie is uitgeschakeld.

eval commando ...
De argumenten worden aaneengeschakeld (met spaties ertussen) om een ​​enkele string te vormen
die de shell vervolgens parseert en uitvoert in de huidige omgeving.

exec [-a argv0] [-c] [commando [arg ...]]
De opdracht wordt uitgevoerd zonder forking, waarbij het shell-proces wordt vervangen. Dit is
momenteel absoluut, dwz exec nooit meer terug, zelfs niet als de commando is niet gevonden. De
-a optie staat het instellen van een andere waarde argv[0] toe, en -c ruimt de omgeving op
voordat het onderliggende proces wordt uitgevoerd, behalve voor de _ variabele en directe toewijzingen.

Als er behalve I/O-omleiding geen opdracht wordt gegeven, is de I/O-omleiding permanent
en de schaal wordt niet vervangen. Alle bestandsbeschrijvingen groter dan 2 die worden geopend
or dup(2)'d op deze manier worden niet beschikbaar gemaakt voor andere uitgevoerde commando's (bijv
commando's die niet in de shell zijn ingebouwd). Merk op dat de Bourne-schaal verschilt
hier; het geeft deze bestandsdescriptors wel door.

afrit [toestand]
De shell wordt afgesloten met de opgegeven afsluitstatus. Als toestand is niet gespecificeerd, de uitgang
status is de huidige waarde van de $? parameter.

exporteren [-p] [parameter[=waarde]]
Stelt het exportattribuut van de benoemde parameters in. Geëxporteerde parameters worden doorgegeven
de omgeving om commando's uit te voeren. Als er waarden zijn opgegeven, worden de benoemde parameters
worden ook toegewezen.

Als er geen parameters zijn opgegeven, zijn alle parameters met het exportattribuut ingesteld
één per regel afgedrukt; ofwel hun naam, of, als er een '-' zonder keuzeletter is
opgegeven, naam=waarde-paren, of, met -p, exporteren commando's die geschikt zijn voor herinvoer.

vals Een opdracht die wordt afgesloten met een niet-nulstatus.

fc [-e editor | -l [-n,-r] [eerste [laatste]]
eerste en laatste selecteer commando's uit de geschiedenis. Commando's kunnen worden geselecteerd op basis van geschiedenis
getal (negatieve getallen gaan achteruit vanaf de huidige, meest recente regel) of a
tekenreeks die de meest recente opdracht specificeert die met die tekenreeks begint. De -l optie
vermeldt de opdracht op standaarduitvoer, en -n remt de standaard commandonummers.
De -r optie keert de volgorde van de lijst om. Zonder -l, de geselecteerde commando's zijn
bewerkt door de editor die is opgegeven met de -e optie, of zo nee -e is opgegeven, de
editor gespecificeerd door de parameter FCEDIT (als deze parameter niet is ingesteld, /bin/ed is
gebruikt), en vervolgens uitgevoerd door de shell.

fc -e - | -s [-g] [oud=nieuwe] [voorvoegsel]
Voer de geselecteerde opdracht opnieuw uit (standaard de vorige opdracht) na uitvoering
de optionele vervanging van oud Met nieuwe. Indien -g is gespecificeerd, alle voorkomens van
oud worden vervangen door nieuwe. De betekenis van -e - en -s identiek is: voer het bestand opnieuw uit
geselecteerde opdracht zonder een editor aan te roepen. Deze opdracht wordt meestal geopend met
de voorgedefinieerde: alias r='fc -e -'

fg [baan ...]
Hervat de opgegeven taak(en) op de voorgrond. Als er geen taken zijn opgegeven, %+ is
uitgegaan van. Zien Jobomschrijving: onder controle te houden hieronder voor meer informatie.

getopt optstring naam [arg ...]
Gebruikt door shell-procedures om de gespecificeerde argumenten (of positionele parameters,
als er geen argumenten worden gegeven) en om te controleren op legale opties. optstring bevat de
optiebrieven dat getopt zijn te herkennen. Als een letter wordt gevolgd door een dubbele punt, wordt de
optie zal naar verwachting een argument hebben. Opties die geen argumenten accepteren, kunnen dat wel zijn
gegroepeerd in één argument. Als een optie een argument heeft en de optie
karakter is niet het laatste karakter van het argument waarin het voorkomt, de rest van
het argument wordt beschouwd als het argument van de optie; anders is het volgende argument
het argument van de optie.

Elke keer weer getopt wordt aangeroepen, plaatst het de volgende optie in de shell-parameter naam
en de index van het argument dat moet worden verwerkt door de volgende aanroep van getopt in de
shell-parameter OPTIND. Als de optie met een '+' is ingevoerd, is de optie geplaatst
in naam wordt voorafgegaan door een '+'. Wanneer een optie een argument vereist, getopt plaatsen
het in de shellparameter OPTARG.

Wanneer een ongeldige optie of een ontbrekend optieargument wordt aangetroffen, verschijnt er een vraagteken
of er wordt een dubbele punt geplaatst naam (geeft een ongeldige optie of een ontbrekend argument aan,
respectievelijk) en OPTARG is ingesteld op het optieteken dat het probleem heeft veroorzaakt.
Bovendien, als optstring begint niet met een dubbele punt, er wordt een vraagteken in geplaatst
naam, OPTARG is uitgeschakeld en er wordt een foutmelding afgedrukt naar standaardfout.

Wanneer het einde van de opties is bereikt, getopt verlaat met een uitgang die niet nul is
toestand. Opties eindigen bij het eerste (niet-optieargument) argument dat niet begint
met een '-', of wanneer een '--' argument wordt aangetroffen.

Het parseren van opties kan worden gereset door OPTIND in te stellen op 1 (dit gebeurt automatisch
wanneer de shell of een shell-procedure wordt aangeroepen).

Waarschuwing: de waarde van de shellparameter OPTIND wijzigen in een andere waarde dan 1, of
het ontleden van verschillende sets argumenten zonder OPTIND opnieuw in te stellen, kan leiden tot onverwachte
resultaten.

globaal ...
Bekijk gezet.

hachee [-r] [naam ...]
Zonder argumenten worden alle gehashte padnamen van uitvoerbare opdrachten weergegeven. De -r optie
zorgt ervoor dat alle gehashte commando's uit de hashtabel worden verwijderd. Elk naam wordt gezocht
alsof het een opdrachtnaam is en wordt toegevoegd aan de hashtabel als het een uitvoerbaar bestand is
opdracht.

vacatures [-lnp] [baan ...]
Informatie weergeven over de opgegeven taak(en); als er geen taken zijn opgegeven, alle taken
worden tentoongesteld. De -n optie zorgt ervoor dat er alleen informatie wordt weergegeven voor taken die
zijn van status veranderd sinds de laatste melding. Als de -l optie wordt gebruikt, de
proces-ID van elk proces in een taak wordt ook vermeld. De -p optie veroorzaakt alleen de
verwerkingsgroep van elke af te drukken taak. Zien Jobomschrijving: onder controle te houden hieronder voor het formaat van baan
en de weergegeven taak.

doden [-s signatuur ​ ​teken ​ ​signatuur] { baan | pid | pgrp } ...
Stuur het opgegeven signaal naar de opgegeven taken, proces-ID's of procesgroepen. Als
er wordt geen signaal opgegeven, het TERM-signaal wordt verzonden. Als een taak is opgegeven, wordt het signaal
wordt verzonden naar de verwerkingsgroep van de taak. Zien Jobomschrijving: onder controle te houden hieronder voor het formaat van baan.

doden -l [exit-status ...]
Druk de signaalnaam af die overeenkomt met exit-status. Als er geen argumenten zijn opgegeven, a
een lijst met alle seinen, hun nummers en een korte beschrijving ervan worden afgedrukt.

laten [uitdrukking ...]
Elke uitdrukking wordt geëvalueerd (zie Rekenkunde uitdrukkingen boven). Als alle uitdrukkingen
succesvol zijn geëvalueerd, is de afsluitstatus 0 (1) als de laatste uitdrukking is geëvalueerd
naar niet-nul (nul). Als er een fout optreedt tijdens het parseren of evalueren van een
expressie is de afsluitstatus groter dan 1. Aangezien expressies mogelijk moeten zijn
geciteerd, (( uitdrukken )) is syntactische suiker voor { laat 'uitdrukken'; }.

laten] Intern gebruikte alias voor laten.

mknoden [-m mode] naam b|c groot minder
mknoden [-m mode] naam p
Maak een speciaal apparaatbestand. Het bestandstype kan zijn b (apparaat van het bloktype), c
(tekentype apparaat), of p (genaamd pijp, FIFO). Het aangemaakte bestand kan worden gewijzigd
volgens zijn mode (via de -m optie), groot (hoofdapparaatnummer), en minder
(klein apparaatnummer). Dit is normaal gesproken geen onderdeel van Bedankt; distributeurs kunnen dat echter wel
heb dit toegevoegd als ingebouwd als een snelheidshack.

print [-nprsu[n-R [-in,argument ...]
print drukt zijn argumenten af ​​op de standaarduitvoer, gescheiden door spaties en afgesloten
met een nieuwe regel. De -n optie onderdrukt de nieuwe regel. Standaard ontsnapt bepaalde C
zijn vertaald. Deze omvatten deze genoemd in backslash uitbreiding hierboven ook
als '\c', wat gelijk staat aan het gebruik van de -n keuze. Backslash-uitbreiding kan zijn
geremd met de -r optie. De -s optie wordt afgedrukt naar het geschiedenisbestand in plaats van
standaard uitvoer; de -u optie wordt afgedrukt naar bestandsbeschrijving n (n standaard ingesteld op 1 als
overgeslagen); en de -p optie afdrukken naar het co-proces (zie Co-processen bovenstaande).

De -R optie wordt gebruikt om, tot op zekere hoogte, de BSD na te bootsen echo(1) opdracht die doet
geen '\' reeksen verwerken, tenzij de -e optie wordt gegeven. Zoals hierboven, de -n optie
onderdrukt de volgende nieuwe regel.

printf formaat [argumenten ...]
Geformatteerde uitvoer. Ongeveer hetzelfde als de printf(1), nut, behalve dat het gebruikt
hetzelfde backslash uitbreiding en I/O-code en behandelt drijvende komma niet als de
rest van Bedankt. Een extern hulpprogramma heeft de voorkeur boven het ingebouwde. Dit is niet
normaal onderdeel van Bedankt; het is echter mogelijk dat distributeurs dit hebben toegevoegd als ingebouwd als een
snelheid hacken. Niet gebruiken in nieuwe code.

pwd [-LP]
Druk de huidige werkmap af. Als de -L optie wordt gebruikt of als de Fysiek
optie is niet ingesteld (zie de reeks opdracht hieronder), wordt het logische pad afgedrukt (dwz het
pad vroeger cd naar de huidige map). Als de -P optie (fysiek pad) wordt gebruikt
of als het Fysiek optie is ingesteld, wordt het pad bepaald op basis van het bestandssysteem (door
volgende '..'-directory's naar de root-directory) wordt afgedrukt.

dit artikel lezen [-A | -a] [-d x] [-N z | -n z] [-p | -u[n,-t n] [-rs] [p ...]
Leest een invoerregel, verdeelt de invoer in velden met behulp van de IFS-parameter (zie
Vervanging hierboven), en wijst elk veld toe aan de opgegeven parameters p​ Als Nee
parameters zijn opgegeven, wordt de REPLY-parameter gebruikt om het resultaat op te slaan. Met de
-A en -a opties, wordt slechts geen of één parameter geaccepteerd. Als er meer zijn
parameters dan velden, worden de extra parameters ingesteld op de lege string of 0; als
er zijn meer velden dan parameters, de laatste parameter krijgt de resterende toegewezen
velden (inclusief de woordscheidingstekens).

De opties zijn als volgt:

-A Sla het resultaat op in de parameter p (of ANTWOORD) als reeks woorden.

-a Sla het resultaat op zonder woordsplitsing in de parameter p (of ANTWOORD) als
reeks tekens (brede tekens als de utf8-modus optie wordt uitgevoerd,
octetten anders); de codepunten zijn standaard gecodeerd als decimale getallen.

-d x Gebruik de eerste byte van x, NUL indien leeg, in plaats van het ASCII-teken voor een nieuwe regel
als scheidingsteken voor de invoerregel.

-N z In plaats van tot het einde van de regel te lezen, lees je precies z bytes. Als EOF of een
time-out optreedt, wordt een gedeeltelijke lezing geretourneerd met exitstatus 1.

-n z In plaats van tot het einde van de regel te lezen, lees tot z bytes maar keer terug zodra
eventuele bytes worden gelezen, bijvoorbeeld van een traag eindapparaat, of als EOF of een time-out
optreedt.

-p Lees uit het momenteel actieve co-proces, zie Co-processen hierboven voor details
op dit.

-u[n] Lees uit de bestandsbeschrijving n (standaard ingesteld op 0, dwz standaardinvoer). De
argument moet onmiddellijk volgen op het optieteken.

-t n Onderbreek het lezen daarna n seconden (gespecificeerd als positieve decimale waarde met een
optioneel gebroken deel). De exitstatus van dit artikel lezen is 1 als de time-out
opgetreden, maar gedeeltelijke leesbewerkingen kunnen nog steeds worden geretourneerd.

-r Normaal gesproken ontsnapt het ASCII-backslash-teken aan de speciale betekenis van het
volgende teken en wordt verwijderd uit de invoer; dit artikel lezen stopt niet wanneer
een backslash-newline-reeks tegenkomt en slaat die nieuwe regel niet op
het resultaat. Deze optie schakelt de onbewerkte modus in, waarin backslashes dat niet zijn
verwerkt.

-s De invoerregel wordt opgeslagen in de historie.

Als de invoer een terminal is, zijn zowel de -N en -n opties zetten het in onbewerkte modus; zij
lees een heel bestand als -1 wordt doorgegeven als z argument.

Aan de eerste parameter kan een vraagteken en een tekenreeks worden toegevoegd, waarin
geval wordt de tekenreeks gebruikt als prompt (afgedrukt naar standaardfout voordat invoer wordt
lezen) als de invoer een is tty(4) (bijv dit artikel lezen nfoo?'nummer of eten: ').

Als er geen invoer wordt gelezen of er een time-out is opgetreden, dit artikel lezen uitgangen met een niet-nul status.

Nog een handige set trucs: Als dit artikel lezen wordt uitgevoerd in een lus zoals en dit artikel lezen foe; do
gedaan dan wordt voorloopspatie verwijderd (IFS) en worden backslashes verwerkt. Jij
zou willen gebruiken en IFS= dit artikel lezen -r foe; do gedaan voor onberispelijke I/O. Evenzo,
bij gebruik van de -a optie, gebruik van de -r optie kan verstandig zijn; Hetzelfde geldt
voor:

vinden . -type f -print0 |& \
terwijl IFS= lees -d '' -pr bestandsnaam; Doen
print -r -- "<${filename#./}> gevonden"
gedaan

De binnenste lus wordt uitgevoerd in een subshell en variabele wijzigingen kunnen niet worden uitgevoerd
gepropageerd indien uitgevoerd in een pijplijn:

balk | baz | terwijl lees foo; Doen ...; klaar

Gebruik in plaats daarvan co-processen:

balk | baz |&
terwijl lees -p foo; Doen ...; klaar
uitvoerend 3>&p; leidinggevende 3>&-

alleen lezen [-p] [parameter [=waarde] ...]
Stelt het alleen-lezen kenmerk van de benoemde parameters in. Als waarden worden gegeven,
parameters worden hierop ingesteld voordat het kenmerk wordt ingesteld. Zodra een parameter is gemaakt
alleen-lezen, kan niet worden uitgeschakeld en de waarde kan niet worden gewijzigd.

Als er geen parameters zijn opgegeven, worden de namen van alle parameters met de alleen-lezen
attribuut worden één per regel afgedrukt, tenzij de -p optie wordt gebruikt, in welk geval
alleen lezen commando's die alle alleen-lezen parameters definiëren, inclusief hun waarden, zijn
afgedrukt.

echt pad [--] naam
Drukt de opgeloste absolute padnaam af die overeenkomt met naam. Indien naam eindigt met een
slash ('/'), het wordt ook gecontroleerd op bestaan ​​en of het een directory is;
anders, echt pad geeft 0 terug als de padnaam bestaat of gemaakt kan worden
onmiddellijk, dwz alles behalve de laatste component bestaat en zijn mappen.

andere naam geven [--] oppompen van naar
Hernoemt het bestand oppompen van naar naar. Beide moeten volledige padnamen zijn en op hetzelfde apparaat staan.
Deze ingebouwde is bedoeld voor noodsituaties waar /bin/mv onbruikbaar wordt, en
direct belt andere naam geven(2).

terugkeer [toestand]
Retourneert van een functie of . script, met exit-status toestand​ Als Nee toestand is gegeven,
de exitstatus van het laatst uitgevoerde commando wordt gebruikt. Indien gebruikt buiten een functie
or . script, het heeft hetzelfde effect als afrit. Merk op dat Bedankt behandelt zowel profiel als
ENV-bestanden als . scripts, terwijl de originele Korn-shell profielen alleen behandelt als .
scripts.

reeks [+-abCefhiklmnprsUuvXx] [+-o optie] [+-A naam] [--] [arg ...]
De reeks commando kan worden gebruikt om in te stellen (-) of duidelijk (+) shell-opties, stel de positional
parameters of stel een arrayparameter in. Opties kunnen worden gewijzigd met behulp van de +-o optie
syntaxis, waar optie is de lange naam van een optie, of het gebruik van de +-letter syntaxis,
WAAR letter is de enkele letternaam van de optie (niet alle opties hebben een enkele letter
naam). De volgende tabel bevat zowel optieletters (indien aanwezig) als lange namen
samen met een beschrijving van wat de optie doet:

-A naam
Stelt de elementen van de arrayparameter in naam naar arg ... If -A Wordt gebruikt, de
array wordt eerst gereset (dwz geleegd); als +A wordt gebruikt, worden de eerste N elementen ingesteld
(waarbij N het aantal argumenten is); de rest blijft onaangeroerd.

Een alternatieve syntaxis voor de opdracht reeks -A foo -- a b c die compatibel is met
GNU slaan en ook ondersteund door AT&T UNIX KSH93 is: foo=(een b C); foe+=(d e)

-a | -o alleexport
Alle nieuwe parameters worden gemaakt met het exportattribuut.

-b | -o de hoogte
Druk opdrachtmeldingen asynchroon af, in plaats van vlak voor de
snel. Wordt alleen gebruikt als opdrachtbeheer is ingeschakeld (-m).

-C | -o geen gek
Voorkom dat > omleiding bestaande bestanden overschrijft. In plaats daarvan >| moet gebruikt worden
om overschrijven te forceren. Merk op dat dit niet veilig is om te gebruiken voor het maken van
tijdelijke bestanden of vergrendelde bestanden als gevolg van een TOCTOU in een cheque waardoor men kan omleiden
uitvoer naar / Dev / null of andere apparaatbestanden, zelfs in geen gek modus.

-e | -o fout
Sluit af (na het uitvoeren van de ERR-trap) zodra er een fout optreedt of een opdracht wordt gegeven
mislukt (dwz wordt afgesloten met een niet-nulstatus). Dit geldt niet voor commando's
waarvan de exit-status expliciet wordt getest door een shell-constructie zoals if, tot,
enof ! verklaringen. Voor && of ||, alleen de status van het laatste commando is
getest.

-f | -o noglob
Vouw bestandsnaampatronen niet uit.

-h | -o volgalle
Maak bijgehouden aliassen aan voor alle uitgevoerde opdrachten (zie Aliassen boven). Ingeschakeld
standaard voor niet-interactieve shells.

-i | -o interactieve
De shell is een interactieve shell. Deze optie kan alleen worden gebruikt als de shell
wordt ingeroepen. Zie hierboven voor een beschrijving van wat dit betekent.

-k | -o trefwoord
Parametertoewijzingen worden overal in een commando herkend.

-l | -o Log in
De shell is een login-shell. Deze optie kan alleen worden gebruikt als de shell is
ingeroepen. Zie hierboven voor een beschrijving van wat dit betekent.

-m | -o controleren
Taakbeheer inschakelen (standaard voor interactieve shells).

-n | -o noexec
Voer geen commando's uit. Handig voor het controleren van de syntaxis van scripts (genegeerd
indien interactief).

-p | -o bevoorrecht
De schaal is een bevoorrechte schaal. Het wordt automatisch ingesteld als, wanneer de shell
begint, komt de echte UID of GID niet overeen met de effectieve UID (EUID) of GID
(EGID), respectievelijk. Zie hierboven voor een beschrijving van wat dit betekent.

-r | -o begrensd
De schaal is een beperkte schaal. Deze optie kan alleen worden gebruikt als de shell is
ingeroepen. Zie hierboven voor een beschrijving van wat dit betekent.

-s | -o stdin
Indien gebruikt wanneer de shell wordt aangeroepen, worden commando's gelezen van standaardinvoer. Set
automatisch als de shell wordt aangeroepen zonder argumenten.

. -s wordt gebruikt met de reeks opdracht zorgt ervoor dat de opgegeven argumenten zijn
gesorteerd voordat ze worden toegewezen aan de positionele parameters (of aan array naam, als
-A is gebruikt).

-U | -o utf8-modus
Schakel UTF-8-ondersteuning in de Emacs editing mode en interne stringafhandeling
functies. Deze vlag is standaard uitgeschakeld, maar kan worden ingeschakeld door deze in te stellen
op de shell-opdrachtregel; wordt automatisch ingeschakeld voor interactieve shells als
gevraagd tijdens het compileren, uw systeem ondersteunt plaats instellen(LC_CTYPE, "") en
naar keuze nl_langinfo(CODESET), of de LC_ALL-, LC_CTYPE- of LANG-omgeving
variabelen, en ten minste één hiervan retourneert iets dat overeenkomt met "UTF-8" of
"utf8" niet hoofdlettergevoelig; voor directe ingebouwde oproepen, afhankelijk van de
bovengenoemde omgevingsvariabelen; of voor stdin of scripts, als de input
begint met een UTF-8 Byte Order Mark.

In de nabije toekomst zal locale tracking worden geïmplementeerd, wat betekent dat reeks -+U is
gewijzigd wanneer een van de aan POSIX locale gerelateerde omgevingsvariabelen verandert.

-u | -o zelfstandig naamwoord
Verwijzen naar een uitgeschakelde parameter, anders dan "$@" of "$*", wordt behandeld als een
fout, tenzij een van de '-', '+' of '=' modifiers wordt gebruikt.

-v | -o breedsprakig
Schrijf shell-invoer naar standaardfout terwijl deze wordt gelezen.

-X | -o markeerdirs
Markeer mappen met een afsluitende '/' tijdens het genereren van bestandsnamen.

-x | -o xspoor
Print opdrachtbomen wanneer ze worden uitgevoerd, voorafgegaan door de waarde van PS4.

-o leuk
Achtergrondtaken worden uitgevoerd met een lagere prioriteit.

-o beugeluitbreiden
Activeer beugeluitbreiding (ook wel afwisseling genoemd). Dit is standaard ingeschakeld. Als
uitgeschakeld, tilde-uitbreiding na een gelijkteken is uitgeschakeld als bijwerking.

-o emacs
Schakel BRL emacs-achtige opdrachtregelbewerking in (alleen interactieve shells); zien Emacs
editing mode.

-o gmac's
Gmacs-achtige opdrachtregelbewerking inschakelen (alleen interactieve shells). Momenteel
identiek aan emacs-bewerking, behalve dat transpose-chars (^T) iets werkt
anders.

-o negeren
De shell zal niet (gemakkelijk) afsluiten wanneer end-of-file wordt gelezen; afrit moet gebruikt worden.
Om oneindige lussen te voorkomen, wordt de shell afgesloten als EOF 13 keer achter elkaar wordt gelezen.

-o erven-xtrace
Niet resetten -o xspoor bij het invoeren van functies. Dit is standaard ingeschakeld.

-o nee
Beëindig lopende taken niet met een SIGHUP-signaal wanneer een login-shell wordt afgesloten.
Momenteel standaard ingesteld, maar dit kan in de toekomst veranderen om compatibel te zijn
met AT&T UNIX ksh, die deze optie niet heeft, maar wel de SIGHUP verzendt
signaal.

-o geenlog
Geen effect. In de originele Korn-shell voorkomt dit functiedefinities van
worden opgeslagen in het geschiedenisbestand.

-o Fysiek
veroorzaakt de cd en pwd commando's om 'fysieke' (dwz het bestandssysteem) '..' te gebruiken
directories in plaats van “logische” directories (dwz de shell verwerkt '..', welke
stelt de gebruiker in staat om zich niet bewust te zijn van symbolische links naar mappen). Opruimen door
standaard. Merk op dat het instellen van deze optie geen invloed heeft op de huidige waarde van de
PWD-parameter; alleen de cd commando verandert PWD. Zie de cd en pwd commando's
hierboven voor meer details.

-o pijpfout
Maak de exitstatus van een pijplijn (voordat deze logisch wordt aangevuld) de
meest rechtse niet-nul foutniveau, of nul als alle opdrachten met nul zijn afgesloten.

-o posix
Gedraag je dichter bij de normen (zie POSIX mode voor details). Automatisch
ingeschakeld als de basisnaam van de shell-aanroep begint met "sh" en dit
autodetectiefunctie is gecompileerd in (niet in MirBSD). Als bijwerking instelling
deze vlag gaat uit beugeluitbreiden modus, die handmatig weer kan worden ingeschakeld, en
sh modus (tenzij beide tegelijkertijd zijn ingeschakeld).

-o sh
Enable / Bin / sh (kludge) modus (zie SH mode). Automatisch ingeschakeld als de
basisnaam van de shell-aanroep begint met "sh" en deze autodetectiefunctie
is gecompileerd in (niet in MirBSD). Als bijwerking wordt het instellen van deze vlag uitgeschakeld
beugeluitbreiden modus, die handmatig weer kan worden ingeschakeld, en posix modus (tenzij
beide zijn tegelijkertijd ingeschakeld).

-o vi
Enable vi(1)-achtige bewerking via de opdrachtregel (alleen interactieve shells). Zien Vi
editing mode voor documentatie en beperkingen.

-o vi-esccompleet
Voer in vi opdrachtregelbewerking de opdracht en de bestandsnaam in bij escape (^[)
wordt ingevoerd in de opdrachtmodus.

-o vi-tabblad compleet
Voer in vi opdrachtregelbewerking de opdracht en de bestandsnaam in wanneer tab (^I) is
ingevoerd in de invoegmodus. Dit is de standaardinstelling.

-o viraal
Geen effect. In de originele Korn-schaal, tenzij viraal was ingesteld, het vi commando-
lijnmodus zou de tty(4) bestuurder doet het werk totdat ESC (^[) is ingevoerd.
Bedankt is altijd in viraw-modus.

Deze opties kunnen ook worden gebruikt bij het aanroepen van de shell. De huidige set van
opties (met enkele letternamen) zijn te vinden in de parameter '$-'. reeks -o Met
geen optienaam zal alle opties weergeven en of ze aan of uit zijn; reeks +o wil
druk de lange namen af ​​van alle opties die momenteel zijn ingeschakeld. In een toekomstige versie reeks
+o zal zich POSIX-compatibel gedragen en opdrachten afdrukken om de huidige opties te herstellen
gebruiken.

Resterende argumenten, indien aanwezig, zijn positionele parameters en worden in volgorde toegewezen aan
de positionele parameters (dwz $1, $2, enz.). Als opties eindigen op '--' en daar
geen resterende argumenten zijn, worden alle positionele parameters gewist. Als er geen opties of
argumenten worden gegeven, de waarden van alle namen worden afgedrukt. Voor onbekende historische
redenen, wordt een eenzame '-' optie speciaal behandeld – het wist zowel de -v en -x
opties.

verschuiving [aantal]
De positionele parameters: aantal+ 1, aantal+2, etc. worden hernoemd naar '1', '2', etc.
aantal staat standaard op 1.

slaap seconden
Onderbreekt de uitvoering voor een minimum van de seconden opgegeven als positieve decimale waarde
met een optioneel gebroken deel. De signaalafgifte kan eerder worden voortgezet.

(bron) filet [arg ...]
Like . ("punt"), behalve dat de huidige werkdirectory aan de zoekopdracht wordt toegevoegd
pad (GNU slaan uitbreiding).

opschorten
Stopt de shell alsof deze het suspend-teken van de terminal heeft ontvangen. Het is
het is niet mogelijk om een ​​login-shell op te schorten, tenzij het bovenliggende proces lid is van de
dezelfde terminalsessie maar is lid van een andere procesgroep. Als generaal
regel, als de shell is gestart door een andere shell of via su(1), het kan worden opgeschort.

proef uitdrukking
[ uitdrukking ]
proef evalueert de uitdrukking en retourneert de status nul indien waar, 1 indien onwaar of hoger
dan 1 als er een fout was. Het wordt normaal gesproken gebruikt als het conditiecommando van if en
en verklaringen. Symbolische links worden voor iedereen gevolgd filet uitdrukkingen behalve -h en
-L.

De volgende basisuitdrukkingen zijn beschikbaar:

-a filet filet bestaat.

-b filet filet is een blok speciaal apparaat.

-c filet filet is een karakter speciaal apparaat.

-d filet filet is een map.

-e filet filet bestaat.

-f filet filet is een regulier bestand.

-G filet filet's-groep is de effectieve groeps-ID van de shell.

-g filet filet's-modus heeft de setgid-bit ingesteld.

-H filet filet is een contextafhankelijke map (alleen nuttig op HP-UX).

-h filet filet is een symbolische koppeling.

-k filet filet's modus heeft de kleverig(8) bit ingesteld.

-L filet filet is een symbolische koppeling.

-O filet filetDe eigenaar van de shell is de effectieve gebruikers-ID van de shell.

-o optie Shell optie is ingesteld (zie de reeks commando hierboven voor een lijst van
opties). Als niet-standaard extensie, als de optie begint met
een '!', de test is ontkend; de test mislukt altijd als optie
bestaat niet (dus [ -o foo -o -o !foo ] retourneert waar als en alleen
indien optie foo bestaat). Hetzelfde kan worden bereikt met [ -o ?foo ]
zoals in AT&T UNIX KSH93. optie kan ook de korte vlag zijn die geleid wordt door
ofwel '-' of '+' (geen logische ontkenning), bijvoorbeeld '-x' of '+x'
in plaats van 'xtrace'.

-p filet filet is een benoemde pijp (FIFO).

-r filet filet bestaat en is leesbaar.

-S filet filet is een unix(4)-domein socket.

-s filet filet is niet leeg.

-t fd Bestandsbeschrijving fd is een tty(4) apparaat.

-u filet filet's-modus heeft de setuid-bit ingesteld.

-w filet filet bestaat en is beschrijfbaar.

-x filet filet bestaat en is uitvoerbaar.

file1 -nt file2 file1 is nieuwer dan file2 or file1 bestaat en file2 doet niet.

file1 -ot file2 file1 is ouder dan file2 or file2 bestaat en file1 doet niet.

file1 -als file2 file1 is hetzelfde bestand als file2.

snaar snaar lengte heeft die niet gelijk is aan nul.

-n snaar snaar is niet leeg.

-z snaar snaar is leeg.

snaar = snaar Strings zijn gelijk.

snaar == snaar Strings zijn gelijk.

snaar > snaar De eerste tekenreeksoperand is groter dan de tweede tekenreeksoperand.

snaar < snaar De eerste tekenreeksoperand is kleiner dan de tweede tekenreeksoperand.

snaar != snaar Strings zijn niet gelijk.

aantal -vgl aantal Cijfers vergelijken gelijk.

aantal -do aantal Cijfers vergelijken niet gelijk.

aantal -geven aantal Getallen vergelijken groter dan of gelijk aan.

aantal - gt aantal Cijfers vergelijken groter dan.

aantal Ze aantal Getallen vergelijken kleiner dan of gelijk.

aantal -lt aantal Cijfers vergelijken minder dan.

De bovenstaande basisuitdrukkingen, waarin unaire operatoren voorrang hebben op binair
operatoren, kan worden gecombineerd met de volgende operatoren (in oplopende volgorde
van voorrang):

expr -o expr Logische OF.
expr -a expr Logische EN.
! expr Logisch NIET.
(uitdr) Groeperen.

Merk op dat een getal eigenlijk een rekenkundige uitdrukking kan zijn, zoals een wiskundige
term of de naam van een variabele met een geheel getal:

x=1; [ "x" -eq 1 ] resulteert in waar

Houd er rekening mee dat er enkele speciale regels worden toegepast (met dank aan POSIX) als het aantal
argumenten om proef of tussen haakjes [ ... ] kleiner is dan vijf: als leidend '!'
argumenten kunnen worden gestript zodat er slechts één tot drie argumenten overblijven, dan de
verlaagde vergelijking wordt uitgevoerd; (dankzij XSI) haakjes \( ... \) onderste vier- en
drie-argumentvormen tot respectievelijk twee- en één-argumentvormen; drie-argument
formulieren geven uiteindelijk de voorkeur aan binaire bewerkingen, gevolgd door ontkenning en haakjes
verlagen; vormen met twee en vier argumenten geven de voorkeur aan ontkenning gevolgd door haakjes; de
vorm met één argument impliceert altijd -n.

Note: Een veelgemaakte fout is om "if [$foo = bar]" te gebruiken, wat mislukt als parameter "foo"
is NULL of niet ingesteld, als het ingesloten spaties heeft (dwz IFS-octetten), of als het een unair
operator zoals '!' of '-n'. Gebruik in plaats daarvan tests zoals "if [x"$foo" = x"bar" ]", of de
operator met dubbele haakjes "if [[ $foo = bar ]]" of, om patroonvergelijking te voorkomen (zie [[
hierboven): “if [[ $foo = "$bar" ]]”

De [[ ... ]] construct is niet alleen veiliger in gebruik, maar vaak ook sneller.

niet de tijd of [-p] [pijpleiding]
Als een pijpleiding wordt gegeven, worden de tijden vermeld die zijn gebruikt om de pijplijn uit te voeren. Als Nee
pijplijn wordt gegeven, vervolgens de gebruiker en systeemtijd die door de shell zelf wordt gebruikt, en zo
de commando's die het heeft uitgevoerd sinds het is gestart, worden gerapporteerd. De vermelde tijden zijn
de realtime (verstreken tijd van start tot finish), de CPU-tijd van de gebruiker (tijd besteed
draaien in gebruikersmodus), en de CPU-tijd van het systeem (tijd besteed aan draaien in kernelmodus).
Tijden worden gerapporteerd volgens standaardfout; het formaat van de uitvoer is:

0m0.00s echt 0m0.00s gebruiker 0m0.00s systeem

Indien de -p optie wordt gegeven, is de uitvoer iets langer:

echte 0.00
gebruiker 0.00
systeem 0.00

Het is een fout om de -p optie tenzij pijpleiding is een eenvoudige opdracht.

Eenvoudige omleidingen van standaardfouten hebben geen invloed op de uitvoer van het niet de tijd of opdracht:

$ tijd slaap 1 2>een bestand
$ { tijd slaap 1; } 2>een bestand

De tijden van het eerste commando gaan niet naar “afile”, maar die van het tweede commando wel.

keer Druk de geaccumuleerde gebruikers- en systeemtijden af ​​die zowel door de shell als door processen worden gebruikt
dat de shell is gestart die zijn verlaten. Het formaat van de uitvoer is:

0m0.00s 0m0.00s
0m0.00s 0m0.00s

val n [signaal ...]
Als de eerste operand een decimaal geheel getal zonder teken is, worden alle opgegeven signalen opnieuw ingesteld
naar de standaardactie, dat wil zeggen is hetzelfde als bellen val met een minteken ('-') als
handler, gevolgd door de argumenten (n [signaal ...]), die allemaal worden behandeld als
signalen.

val [handler signaal ...]
Stelt een trap-handler in die moet worden uitgevoerd wanneer een van de opgegeven signaals zijn
ontvangen. handler is ofwel een lege string, die aangeeft dat de signalen moeten zijn
genegeerd, een minteken ('-'), waarmee wordt aangegeven dat de standaardactie moet worden uitgevoerd
de signalen (zie signaal(3)), of een tekenreeks met shell-commando's die moeten worden uitgevoerd
de eerste gelegenheid (dwz wanneer de huidige opdracht is voltooid, of voordat u gaat afdrukken
de volgende PS1-prompt) na ontvangst van een van de signalen. signaal is de naam van een
signaal (bijv. PIPE of ALRM) of het nummer van het signaal (zie de doden -l commando
bovenstaande).

Er zijn twee speciale signalen: EXIT (ook bekend als 0), die wordt uitgevoerd wanneer de
shell staat op het punt om af te sluiten, en ERR, die wordt uitgevoerd nadat er een fout is opgetreden; een fout is
iets dat ervoor zou zorgen dat de shell wordt afgesloten als de reeks -e or reeks -o fout optie
waren ingesteld. EXIT handlers worden uitgevoerd in de omgeving van de laatst uitgevoerde
opdracht.

Merk op dat voor niet-interactieve shells de trap-handler niet kan worden gewijzigd voor signalen
die werden genegeerd toen de shell startte.

Zonder argumenten, de huidige status van de traps die zijn ingesteld sinds de shell
gestart wordt weergegeven als een reeks van val commando's. Merk op dat de uitvoer van val kan niet
nuttig kunnen worden doorgesluisd naar een ander proces (een artefact van het feit dat vallen worden gewist
wanneer subprocessen worden gemaakt).

De DEBUG-trap van de originele Korn-shell en de afhandeling van ERR- en EXIT-traps
functies zijn nog niet geïmplementeerd.

waar Een opdracht die wordt afgesloten met een nulwaarde.

globaal [[+-alpnrtUux] [-L[n,-R[n,-Z[n,-i[n]] | -f [- tux,naam [=waarde] ...]
gezet [[+-alpnrtUux] [-LRZ[n,-i[n]] | -f [- tux,naam [=waarde] ...]
Toon of stel parameterattributen in. Zonder naam argumenten, parameterattributen
worden tentoongesteld; als er geen opties worden gebruikt, zijn de huidige attributen van alle parameters dat wel
afgedrukt als gezet commando's; als een optie wordt gegeven (of '-' zonder optieletter),
alle parameters en hun waarden met de gespecificeerde attributen worden afgedrukt; als opties
worden ingeleid met '+', parameterwaarden worden niet afgedrukt.

If naam argumenten worden gegeven, de attributen van de benoemde parameters worden ingesteld (-) Of
gewist (+). Waarden voor parameters kunnen optioneel worden gespecificeerd. Voor naam[*], de
verandering is van invloed op de hele array en er mag geen waarde worden opgegeven.

If gezet wordt gebruikt binnen een functie, alle opgegeven parameters zijn gelokaliseerd. Dit
wordt niet gedaan door de overigens identieke globaal. Note: Dit betekent dat Bedankt 's globaal
commando is niet gelijk aan andere programmeertalen' aangezien het geen a
functie aangeroepen vanuit een andere functie om toegang te krijgen tot een parameter op echt globale schaal,
maar verhindert alleen het plaatsen van een toegankelijk exemplaar in het lokale bereik.

. -f is gebruikt, gezet werkt op de attributen van functies. Zoals met
parameters, indien nee naam argumenten worden gegeven, functies worden vermeld met hun waarden
(dwz definities) tenzij opties worden geïntroduceerd met '+', in welk geval alleen de
functienamen worden vermeld.

-a Geïndexeerd arraykenmerk.

-f Functie modus. Toon of stel functies en hun attributen in, in plaats van
parameters.

-i[n] Integer-attribuut. n specificeert het grondtal dat moet worden gebruikt bij het weergeven van het gehele getal
(indien niet opgegeven, wordt de basis gebruikt die in de eerste opdracht is gegeven).
Aan parameters met dit attribuut kunnen waarden worden toegewezen die rekenkunde bevatten
uitdrukkingen.

-L[n] Attribuut links uitvullen. n specificeert de veldbreedte. Als n is niet gespecificeerd,
de huidige breedte van een parameter (of de breedte van de eerste toegewezen waarde)
is gebruikt. Voorafgaande witruimte (en nullen, indien gebruikt met de -Z optie) is
ontdaan. Indien nodig worden waarden afgekapt of met ruimte opgevuld om te passen
de veldbreedte.

-l Attribuut in kleine letters. Alle hoofdletters in waarden worden geconverteerd naar
kleine letters. (In de originele Korn-shell betekende deze parameter "lang geheel getal"
bij gebruik met de -i keuze.)

-n Maak een gebonden variabele (naamreferentie): elke toegang tot de variabele naam
krijgt toegang tot de variabele waarde in de huidige scope (dit is anders dan
AT&T UNIX KSH93!) in plaats van. Ook anders dan AT&T UNIX KSH93 dat
waarde wordt op dat moment lui geëvalueerd naam wordt benaderd. Deze kan gebruikt worden door
functies om toegang te krijgen tot variabelen waarvan de namen als parameters worden doorgegeven
gebruiken eval.

-p Afdrukken voltooid gezet commando's die kunnen worden gebruikt om de attributen opnieuw te maken
en waarden van parameters.

-R[n] Attribuut Rechts uitvullen. n specificeert de veldbreedte. Als n is niet
opgegeven, de huidige breedte van een parameter (of de breedte van de eerste
toegekende waarde) wordt gebruikt. Achterliggende witruimte is gestript. Indien nodig,
waarden zijn ontdaan van hoofdtekens of met spatie om ze te maken
past bij de veldbreedte.

-r Alleen-lezen kenmerk. Parameters met dit attribuut mogen niet worden toegewezen aan
of uitgeschakeld. Als dit kenmerk eenmaal is ingesteld, kan het niet meer worden uitgeschakeld.

-t Tagkenmerk. Heeft geen betekenis voor de schaal; verstrekt voor toepassingsgebruik.

voor functies, -t is het trace-attribuut. When werkt met de trace
attribuut worden uitgevoerd, de xspoor (-x) shell-optie is tijdelijk ingeschakeld
op.

-U Niet-ondertekend geheel getal attribuut. Integers worden afgedrukt als niet-ondertekende waarden (combine
met de -i keuze). Deze optie zit niet in de originele Korn-shell.

-u Attribuut in hoofdletters. Alle kleine letters in waarden worden geconverteerd naar
hoofdletters. (In de originele Korn-shell betekende deze parameter "unsigned
integer" wanneer gebruikt met de -i optie wat betekende dat hoofdletters dat wel zouden doen
nooit gebruiken voor bases groter dan 10. Zie de -U keuze.)

voor functies, -u is het ongedefinieerde attribuut. Zien Functies hierboven voor de
implicaties hiervan.

-x Attribuut exporteren. Parameters (of functies) worden geplaatst in de omgeving van
alle uitgevoerde commando's. Geëxporteerde functies zijn nog niet geïmplementeerd.

-Z[n] Nul opvulkenmerk. Indien niet gecombineerd met -L, dit is hetzelfde als -R, behalve
zero padding wordt gebruikt in plaats van space padding. Voor gehele getallen, het getal
in plaats van de basis is opgevuld.

Als een van de -i, -L, -l, -R, -U, -uof -Z opties zijn gewijzigd, alle andere hiervan
set worden gewist, tenzij ze ook op dezelfde opdrachtregel worden gegeven.

ulimit [-aBCcdefHilMmnOPpqrSsTtVvw] [waarde]
Proceslimieten weergeven of instellen. Als er geen opties worden gebruikt, wordt de maximale bestandsgrootte (-f) is
verondersteld. waarde, indien opgegeven, kan een rekenkundige uitdrukking of het woord zijn
"onbeperkt". De limieten zijn van invloed op de shell en alle processen die door de shell zijn gemaakt
nadat een limiet is opgelegd. Houd er rekening mee dat sommige systemen mogelijk geen limieten toestaan
verhoogd zodra ze zijn ingesteld. Merk ook op dat de soorten limieten die beschikbaar zijn systeem zijn
afhankelijk – sommige systemen hebben alleen de -f limit.

-a Toon alle limieten; tenzij -H wordt gebruikt, worden zachte limieten weergegeven.

-B n Stel de socketbuffergrootte in op n kibibytes.

-C n Stel het aantal threads in de cache in op n.

-c n Leg een maximale grootte van n blokken op de grootte van kernstortplaatsen.

-d n Leg een maximale grootte van n kibibytes over de grootte van het gegevensgebied.

-e n Zet de maximale aardigheid op n.

-f n Leg een maximale grootte van n blokken op bestanden geschreven door de shell en zijn kind
processen (bestanden van elke grootte kunnen worden gelezen).

-H Stel alleen de harde limiet in (de standaardinstelling is om zowel harde als zachte limieten in te stellen).

-i n Stel het aantal wachtende signalen in op n.

-l n Leg een limiet op van n kibibytes over de hoeveelheid vergrendeld (bekabeld) fysiek geheugen.

-M n Stel het AIO vergrendeld geheugen in op n kibibytes.

-m n Leg een limiet op van n kibibytes over de hoeveelheid fysiek geheugen die wordt gebruikt.

-n n Leg een limiet op van n bestandsbeschrijvingen die tegelijk kunnen worden geopend.

-O n Stel het aantal AIO-bewerkingen in op n.

-P n Beperk het aantal threads per proces tot n.

-p n Leg een limiet op van n processen die op elk moment door de gebruiker kunnen worden uitgevoerd.

-q n Beperk de grootte van POSIX-berichtenwachtrijen tot n bytes.

-r n Stel de maximale real-time prioriteit in op n.

-S Stel alleen de zachte limiet in (de standaardinstelling is om zowel harde als zachte limieten in te stellen).

-s n Leg een maximale grootte van n kibibytes op de grootte van het stapelgebied.

-T n Stel een termijn van n echte seconden die door elk proces moeten worden gebruikt.

-t n Stel een termijn van n CPU-seconden doorgebracht in gebruikersmodus die door elk moeten worden gebruikt
proces.

-V n Stel het aantal vnode-monitoren op Haiku in op n.

-v n Leg een limiet op van n kibibytes over de hoeveelheid virtueel geheugen (adresruimte)
gebruikt.

-w n Leg een limiet op van n kibibytes over de hoeveelheid gebruikte swapruimte.

Voor zover ulimit betreft, is een blok 512 bytes.

umasker [-S] [maskeren]
Geef het masker voor het maken van bestandsrechten of umask weer of stel het in (zie umasker(2)). Als de -S
optie wordt gebruikt, het weergegeven of ingestelde masker is symbolisch; anders is het een octaal
nummer.

Symbolische maskers zijn zoals die gebruikt door chmod(1). Wanneer ze worden gebruikt, beschrijven ze wat
machtigingen kunnen beschikbaar worden gesteld (in tegenstelling tot octale maskers waarin een set bit betekent
het overeenkomstige bit moet worden gewist). Bijvoorbeeld, "ug=rwx,o=" stelt het masker zo in
bestanden zullen niet leesbaar, beschrijfbaar of uitvoerbaar zijn door "anderen", en is equivalent
(op de meeste systemen) naar het octale masker "007".

alias [-add] [naam ...]
De aliassen voor de voornamen worden verwijderd. Als de -a optie wordt gebruikt, alle aliassen
zijn verwijderd. Als de -t or -d opties worden gebruikt, de aangegeven bewerkingen worden uitgevoerd
uit op respectievelijk gevolgde of directory-aliassen.

uitgeschakeld [-fv] parameter ...
Maak de benoemde parameters ongedaan (-v, de standaard) of functies (-f). Met parameter[*],
attributen blijven behouden, alleen waarden zijn niet ingesteld.

De afsluitstatus is niet nul als een van de parameters het kenmerk alleen-lezen heeft
ingesteld, anders nul.

wachten [baan ...]
Wacht tot de opgegeven taak(en) zijn voltooid. De exitstatus van wachten is die van de laatste
gespecificeerde baan; als de laatste taak wordt gedood door een signaal, is de exitstatus 128 + de
nummer van het signaal (zie doden -l exit-status boven); als de laatst opgegeven taak dat niet kan
worden gevonden (omdat het nooit heeft bestaan, of al was afgelopen), de exitstatus van wachten
is 127. Zie? Jobomschrijving: onder controle te houden hieronder voor het formaat van baan. wachten zal terugkeren als een signaal
waarvoor een trap is ingesteld, wordt ontvangen, of als een SIGHUP-, SIGINT- of SIGQUIT-signaal wordt ontvangen
is ontvangen.

Als er geen taken zijn opgegeven, wachten wacht op alle momenteel lopende taken (indien aanwezig).
finish en eindigt met een nulstatus. Als taakbewaking is ingeschakeld, wordt de voltooiing
status van opdrachten wordt afgedrukt (dit is niet het geval wanneer opdrachten expliciet zijn opgegeven).

waar vandaan [-pv] [naam ...]
Zonder de -v optie, het is hetzelfde als commando -v, behalve dat aliassen niet worden afgedrukt
als aliasopdracht. Met de -v optie, het is precies hetzelfde als commando -V. in
beide gevallen, de -p optie verschilt: het zoekpad wordt niet beïnvloed in waar vandaan, Maar
de zoekopdracht is beperkt tot het pad.

Jobomschrijving: onder controle te houden
Taakcontrole verwijst naar het vermogen van de shell om taken die processen of processen zijn te controleren en te controleren
groepen processen die zijn gemaakt voor opdrachten of pijplijnen. Op zijn minst houdt de schaal het bij
van de status van de achtergrond (dwz asynchrone) banen die momenteel bestaan; dit
informatie kan worden weergegeven met behulp van de vacatures commando's. Als opdrachtbeheer volledig is ingeschakeld
(met behulp van reeks -m or reeks -o controleren), zoals het is voor interactieve shells, de processen van een taak
worden in hun eigen procesgroep geplaatst. Voorgrondtaken kunnen worden gestopt door de onderbreking te typen
teken van de terminal (normaal ^Z), kunnen taken opnieuw worden gestart op de voorgrond of
achtergrond met behulp van de fg en bg commando's en de status van de terminal wordt opgeslagen of hersteld
wanneer een taak op de voorgrond respectievelijk wordt gestopt of opnieuw wordt gestart.

Merk op dat alleen commando's die processen creëren (bijv. asynchrone commando's, subshell
commando's en niet-ingebouwde, niet-functionele commando's) kunnen worden gestopt; commando's zoals dit artikel lezen kan niet
worden.

Wanneer een taak wordt aangemaakt, krijgt deze een taaknummer toegewezen. Voor interactieve shells is dit aantal
afgedrukt in "[..]", gevolgd door de proces-ID's van de processen in de taak wanneer een
asynchrone opdracht wordt uitgevoerd. Er kan verwezen worden naar een baan in de bg, fg, vacatures, doden en wachten
commando's ofwel door de proces-ID van het laatste proces in de opdrachtpijplijn (zoals opgeslagen in
de $! parameter) of door het taaknummer te laten voorafgaan door een procentteken ('%'). Andere procent
reeksen kunnen ook worden gebruikt om naar banen te verwijzen:

%+ | %% | % De meest recent gestopte taak, of, als er geen gestopte taken zijn, de oudste
lopende baan.

%- De baan die de %+ baan als deze niet bestond.

%n De vacature met vacaturenummer n.

%?snaar De taak met de opdracht die de tekenreeks bevat snaar (er treedt een fout op als
meerdere banen worden gematcht).

%snaar De taak met de opdracht die begint met de tekenreeks snaar (er treedt een fout op als
meerdere banen worden gematcht).

Wanneer een taak van status verandert (bijv. een achtergrondtaak is voltooid of een voorgrondtaak is gestopt), zal het
shell drukt de volgende statusinformatie af:

[aantal] vlag toestand commando

waar...

aantal is het baannummer van de baan;

vlag is het '+' of '-' teken als de taak de %+ or %- respectievelijk baan of ruimte
als het geen van beide is;

toestand geeft de huidige status van de taak aan en kan zijn:

Klaar [aantal]
De baan is weggegaan. aantal is de afsluitstatus van de taak die is weggelaten
als de status nul is.

Actief De taak is niet gestopt of afgesloten (houd er rekening mee dat dit bij het uitvoeren niet het geval is
betekent noodzakelijkerwijs dat het CPU-tijd kost - het proces kan worden geblokkeerd
wachten op een gebeurtenis).

Gestopt [signaal]
De klus is gestopt door de aangegeven signaal (als er geen signaal wordt gegeven, de
taak is gestopt door SIGTSTP).

signaalbeschrijving [“kern gedumpt”]
De taak is afgebroken door een signaal (bijv. geheugenfout, ophangen); gebruik doden -l
voor een lijst met signaalbeschrijvingen. Het bericht "core gedumpt" geeft aan
het proces creëerde een kernbestand.

commando is de opdracht die het proces heeft gemaakt. Als er meerdere processen in de
taak, zal elk proces een lijn hebben die zijn commando en mogelijk zijn toestand, als
het is anders dan de status van het vorige proces.

Wanneer een poging wordt gedaan om de shell te verlaten terwijl er jobs in de gestopte toestand zijn,
shell waarschuwt de gebruiker dat er gestopte jobs zijn en sluit niet af. Als een andere poging is
onmiddellijk gemaakt om de shell te verlaten, krijgen de gestopte taken een SIGHUP-signaal en de shell
uitgangen. Evenzo, als de nee optie is niet ingesteld en er zijn lopende taken bij een poging
wordt gemaakt om een ​​login-shell te verlaten, waarschuwt de shell de gebruiker en gaat niet weg. Als een andere
er wordt onmiddellijk geprobeerd de shell te verlaten, de lopende taken krijgen een SIGHUP-signaal en
de schil komt eruit.

POSIX mode
Invoeren reeks -o posix modus zal veroorzaken Bedankt om zich op sommige plaatsen nog meer POSIX-compatibel te gedragen
waar de standaarden of meningen verschillen. Let daar op Bedankt werkt nog steeds met niet-ondertekend
32-bits rekenkunde; gebruik iksh als rekenkunde op de host lang gegevenstype, compleet met ISO C
Ongedefinieerd gedrag, zijn vereist; verwijs naar de iksh(1) handleidingpagina voor details. De meeste andere
historisch, AT&T UNIX ksh-compatibele of eigenzinnige verschillen kunnen worden uitgeschakeld door dit te gebruiken
modus; dit zijn:

· de GNU slaan I / O-omleiding &>filet wordt niet meer ondersteund.

· Bestandsbeschrijvingen die zijn gemaakt door I/O-omleidingen, worden overgenomen door onderliggende processen.

· Getallen met een voorloopcijfer nul worden geïnterpreteerd als octaal.

· De echo ingebouwde interpreteert geen backslashes en ondersteunt alleen de exacte optie "-n'.

· ... (lijst is onvolledig en kan veranderen voor R53)

SH mode
Compatibiliteitsmodus; bedoeld voor gebruik met verouderde scripts die niet eenvoudig kunnen worden gerepareerd; de
wijzigingen zijn als volgt:

· de GNU slaan I / O-omleiding &>filet wordt niet meer ondersteund.

· Bestandsbeschrijvingen die zijn gemaakt door I/O-omleidingen, worden overgenomen door onderliggende processen.

· De echo ingebouwde interpreteert geen backslashes en ondersteunt alleen de exacte optie "-n'.

· ... (lijst is onvolledig en kan veranderen voor R53)

Interactief invoer lijn editing
De shell ondersteunt drie modi voor het lezen van opdrachtregels van een tty(4) in een interactief
sessie, gecontroleerd door de emacs, gmac's en vi opties (maximaal een van deze kan worden ingesteld op
eenmaal). De standaardwaarde is emacs. Bewerkingsmodi kunnen expliciet worden ingesteld met behulp van de reeks ingebouwd.
Als geen van deze opties is ingeschakeld, leest de shell eenvoudig regels met behulp van de normale tty(4)
bestuurder. Als de emacs or gmac's optie is ingesteld, staat de shell emacs-achtige bewerking toe van de
commando; evenzo, als de vi optie is ingesteld, staat de shell vi-achtige bewerking toe van de
commando. Deze modi worden in detail beschreven in de volgende secties.

Als in deze bewerkingsmodi een lijn langer is dan de schermbreedte (zie de COLUMNS
parameter), wordt een '>', '+' of '<' teken weergegeven in de laatste kolom om dat aan te geven
er zijn meer tekens na, voor en na, of voor de huidige positie,
respectievelijk. De regel wordt indien nodig horizontaal verschoven.

Voltooide regels worden in de geschiedenis gepusht, tenzij ze beginnen met een IFS-octet of IFS
witte ruimte, of hetzelfde zijn als de vorige regel.

Emacs editing mode
Wanneer de emacs optie is ingesteld, is interactieve invoerregelbewerking ingeschakeld. Waarschuwing: deze modus
verschilt enigszins van de emacs-modus in de originele Korn-shell. In deze modus verschillende
bewerkingscommando's (meestal gebonden aan een of meer besturingstekens) veroorzaken onmiddellijke acties
zonder op een nieuwe regel te wachten. Verschillende bewerkingscommando's zijn gebonden aan een bepaalde besturing
tekens wanneer de shell wordt aangeroepen; deze bindingen kunnen worden gewijzigd met behulp van de binden opdracht.

Het volgende is een lijst met beschikbare bewerkingsopdrachten. Elke beschrijving begint met de
naam van het commando, gevolgd door een dubbele punt; een [n] (als de opdracht kan worden voorafgegaan door een
graaf); en alle toetsen waaraan de opdracht standaard is gebonden, geschreven met dakje-notatie, bijvoorbeeld
het ASCII ESC-teken wordt geschreven als ^[. Deze besturingsreeksen zijn niet hoofdlettergevoelig.
Een telvoorvoegsel voor een commando wordt ingevoerd met behulp van de reeks ^[n, Waar n is een reeks van 1
of meer cijfers. Tenzij anders aangegeven, wordt een telling standaard op 1 gezet als deze wordt weggelaten.

Merk op dat namen van bewerkingsopdrachten alleen worden gebruikt met de binden commando. Verder veel
bewerkingscommando's zijn alleen nuttig op terminals met een zichtbare cursor. De standaard bindingen
werden gekozen om te lijken op overeenkomstige Emacs-toetscombinaties. Die van de gebruiker tty(4) tekens
(bijv. ERASE) zijn gebonden aan redelijke vervangingen en hebben voorrang op de standaardbindingen.

afbreken: ^C, ^G
Breek het huidige commando af, maak de lijnbuffer leeg en stel de exit-status in op
onderbroken.

automatisch invoegen: [n]
Zorgt er simpelweg voor dat het karakter verschijnt als letterlijke invoer. De meeste gewone karakters
zijn hieraan gebonden.

achterwaartse tekens: [n] ^B, ^XD, ANSI-CurLinks, PC-CurLinks
Verplaatst de cursor naar achteren n tekens.

achteruit-woord: [n] ^[b, ANSI-Ctrl-CurLinks, ANSI-Alt-CurLinks
Verplaatst de cursor terug naar het begin van het woord; woorden bestaan ​​uit
alfanumerieke tekens, onderstrepingstekens ('_') en dollartekens ('$').

begin van de geschiedenis: ^[
Gaat naar het begin van de geschiedenis.

begin van regel: ^A, ANSI-Home, PC-Home
Verplaatst de cursor naar het begin van de bewerkte invoerregel.

hoofdletterwoord: [n] ^[C, ^[c
Hoofdletter het eerste teken in het volgende n woorden, waarbij de cursor voorbij het einde blijft
van het laatste woord.

helder scherm: ^[^L
Drukt een tijdens het compileren configureerbare reeks af om het scherm leeg te maken en de cursor naar huis te brengen,
tekent de volledige prompt en de momenteel bewerkte invoerregel opnieuw. De standaardvolgorde
werkt voor bijna alle standaard terminals.

opmerking: ^[#
Als de huidige regel niet begint met een commentaarteken, wordt er een toegevoegd aan de
begin van de regel en de regel wordt ingevoerd (alsof er op return is gedrukt);
anders worden de bestaande commentaartekens verwijderd en wordt de cursor geplaatst op
het begin van de regel.

compleet: ^[^[
Vult automatisch zoveel als uniek is aan de opdrachtnaam of de bestandsnaam
die de cursor bevat. Als de volledige resterende opdracht of bestandsnaam uniek is, a
spatie wordt na voltooiing afgedrukt, tenzij het een mapnaam is, in welk geval
'/' wordt toegevoegd. Als er geen opdracht of bestandsnaam is bij het huidige gedeeltelijke woord
als voorvoegsel wordt een belteken uitgevoerd (meestal veroorzaakt een pieptoon).

compleet-commando: ^X^[
Voltooit automatisch zoveel als uniek is van de opdrachtnaam met de partiële
woord tot aan de cursor als voorvoegsel, zoals in de compleet commando hierboven.

volledig bestand: ^[^X
Vult automatisch zoveel als uniek is aan de bestandsnaam met de gedeeltelijke
woord tot aan de cursor als voorvoegsel, zoals in de compleet hierboven beschreven commando.

volledige lijst: ^I, ^[=
Vul zoveel mogelijk van het huidige woord in en maak een lijst van de mogelijke
aanvullingen ervoor. Als er slechts één voltooiing mogelijk is, match dan zoals in de compleet
commando hierboven. Merk op dat ^I meestal wordt gegenereerd door de TAB-toets (tabulator).

verwijder-char-achteruit: [n] WISSEN, ^?, ^H
Verwijdert n tekens vóór de cursor.

verwijder-char-forward: [n] ANSI-Del, PC-Del
Verwijdert n tekens na de cursor.

verwijder-woord-achteruit: [n] WERASE, ^[^?, ^[^H, ^[h
Verwijdert n woorden vóór de cursor.

verwijder-woord-vooruit: [n] ^[d
Verwijdert tekens na de cursor tot aan het einde van n woorden.

down-geschiedenis: [n] ^N, ^XB, ANSI-CurDown, PC-CurDown
Bladert vooruit door de geschiedenisbuffer n lijnen (later). Elke invoerregel oorspronkelijk
begint net na de laatste invoer in de geschiedenisbuffer, dus down-geschiedenis is niet
nuttig tot een van beide zoek geschiedenis, zoekgeschiedenis omhoog or up-geschiedenis is
uitgevoerd.

hoofdletterwoord: [n] ^[L, ^[l
Kleine letters de volgende n woorden.

bewerkingsregel: [n] ^ Xe
Lijn bewerken n of de huidige regel, indien niet gespecificeerd, interactief. De daadwerkelijke
uitgevoerde opdracht is fc -e ${VISUAL:-${EDITOR:-vi}} n.

einde-van-geschiedenis: ^[>
Gaat naar het einde van de geschiedenis.

end-of-line: ^E, ANSI-End, PC-End
Verplaatst de cursor naar het einde van de invoerregel.

iet: ^_
Fungeert als end-of-file; dit is handig omdat invoer in de bewerkingsmodus de normale invoer uitschakelt
canonicalisatie van terminalinvoer.

eot-of-verwijder: [n] ^ D
Fungeert als EOT als je alleen aan de lijn bent; anderszins gedraagt ​​zich als verwijder-char-forward.

fout: (niet gebonden)
Fout (bel aanbellen).

uitwisselingspunt-en-markering: ^X^X
Plaatst de cursor op de plek waar de markering staat en zet de markering op de plek waar de cursor stond.

expand-bestand: ^[*
Voegt een '*' toe aan het huidige woord en vervangt het woord door het resultaat van
het uitvoeren van bestandsglobbing op het woord. Als er geen bestanden overeenkomen met het patroon, klinkt de bel
sport.

forward-char: [n] ^F, ^XC, ANSI-CurRight, PC-CurRight
Verplaatst de cursor naar voren n tekens.

vooruitwoord: [n] ^[f, ANSI-Ctrl-CurRight, ANSI-Alt-CurRight
Verplaatst de cursor naar voren naar het einde van de ne woord.

ga naar geschiedenis: [n] ^[gr
Gaat naar geschiedenisnummer n.

kill-lijn: DODEN
Verwijdert de gehele invoerregel.

kill-regio: ^W
Wist de invoer tussen de cursor en de markering.

doden-tot-eol: [n] ^ K
Verwijdert de invoer van de cursor tot het einde van de regel if n is niet gespecificeerd;
verwijdert anders tekens tussen de cursor en de kolom n.

lijst: ^[?
Drukt een gesorteerde lijst met kolommen af ​​met opdrachtnamen of bestandsnamen (indien aanwezig).
voltooi het gedeeltelijke woord dat de cursor bevat. Aan mapnamen is '/' toegevoegd
naar hen.

lijst-opdracht: ^X?
Drukt een gesorteerde lijst met kolommen af ​​met opdrachtnamen (indien aanwezig) die de opdracht kunnen voltooien
gedeeltelijk woord dat de cursor bevat.

lijstbestand: ^X^Y
Drukt een gesorteerde lijst met kolommen af ​​met bestandsnamen (indien aanwezig) die de
gedeeltelijk woord dat de cursor bevat. Bestandstype-indicatoren worden toegevoegd zoals beschreven
voor lijst bovenstaand.

nieuwe regel: ^J, ^M
Zorgt ervoor dat de huidige invoerregel door de shell wordt verwerkt. De huidige cursor
De positie kan overal op de lijn zijn.

nieuweregel-en-volgende: ^O
Zorgt ervoor dat de huidige invoerregel door de shell wordt verwerkt, en de volgende regel
de geschiedenis wordt de huidige lijn. Dit is alleen nuttig na een up-geschiedenis,
zoek geschiedenis or zoekgeschiedenis omhoog.

geen operatie: STOP
Dit doet niets.

voorvoegsel-1: ^[
Introduceert een commandoreeks van 2 tekens.

voorvoegsel-2: ^X, ^[[, ^[O
Introduceert een commandoreeks van 2 tekens.

vorig-hist-woord: [n] ^[., ^[_
Het laatste woord, of, indien gegeven, het ne woord (op nul gebaseerd) van het vorige (op herhaald
uitvoering, voorlaatste, op twee na laatste, etc.) opdracht wordt ingevoegd bij de cursor. Gebruik van
Met deze bewerkingsopdracht wordt de markering weggegooid.

citaat: ^^, ^V
Het volgende teken wordt letterlijk genomen en niet als een bewerkingsopdracht.

opnieuw tekenen: ^L
Drukt de laatste regel van de promptstring en de huidige invoerregel opnieuw af op een nieuwe
lijn.

zoek-teken-achteruit: [n] ^[^]
Zoek achteruit in de huidige regel naar de ne keer dat het volgende teken voorkomt
getypt.

zoek-teken-vooruit: [n] ^]
Zoek vooruit in de huidige regel naar de ne keer dat het volgende teken voorkomt
getypt.

zoekgeschiedenis: ^R
Ga naar de incrementele zoekmodus. Er wordt achterstevoren gezocht naar de interne geschiedenislijst
opdrachten die overeenkomen met de invoer. Een initiële '^' in de zoekreeks verankert de
zoekopdracht. De escape-toets verlaat de zoekmodus. Andere opdrachten, inclusief reeksen
van ontsnapping als voorvoegsel-1 gevolgd door een voorvoegsel-1 or voorvoegsel-2 sleutel zal daarna worden uitgevoerd
de zoekmodus verlaten. De afbreken (^G) commando zal de eerder ingevoerde regel herstellen
zoeken gestart. Opeenvolgende zoek geschiedenis commando's blijven achteruit zoeken naar
de volgende vorige verschijning van het patroon. De geschiedenisbuffer bewaart slechts a
eindig aantal lijnen; de oudste worden indien nodig weggegooid.

zoekgeschiedenis: ANSI-PgUp, PC-PgUp
Zoek achteruit door de geschiedenisbuffer naar opdrachten waarvan het begin overeenkomt met de
gedeelte van de invoerregel vóór de cursor. Bij gebruik op een lege regel is dit het geval
hetzelfde effect als up-geschiedenis.

zoekgeschiedenis omlaag: ANSI-PgDn, PC-PgDn
Zoek vooruit door de geschiedenisbuffer naar opdrachten waarvan het begin overeenkomt met de
gedeelte van de invoerregel vóór de cursor. Bij gebruik op een lege regel is dit het geval
hetzelfde effect als down-geschiedenis. Dit is alleen nuttig na een up-geschiedenis,
zoek geschiedenis or zoekgeschiedenis omhoog.

set-mark-commando: ^[
Plaats de markering op de cursorpositie.

transponeren-tekens: ^T
Als aan het einde van de regel, of als de gmac's optie is ingesteld, worden de twee uitgewisseld
eerdere karakters; anders wisselt het de vorige en huidige karakters uit en
verplaatst de cursor één teken naar rechts.

up-geschiedenis: [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
Bladert de geschiedenisbuffer achteruit n lijnen (eerder).

hoofdletterwoord: [n] ^[U, ^[u
Volgende hoofdletter n woorden.

versie: ^[^V
Toon de versie van Bedankt. De huidige bewerkingsbuffer wordt hersteld zodra er een toets wordt ingedrukt
wordt ingedrukt. De herstellende toetsaanslag wordt verwerkt, tenzij het een spatie betreft.

ruk: ^Y
Voegt de meest recentelijk beëindigde tekstreeks in op de huidige cursorpositie.

yank-pop: ^[y
Direct na een rukken, vervangt de ingevoegde tekstreeks door de volgende eerder
gedode tekstreeks.

Vi editing mode
Opmerking: De vi-opdrachtregelbewerkingsmodus is verweesd, maar nog steeds functioneel. Het is 8-bit schoon
maar ondersteunt specifiek geen UTF-8 of MBCS.

De vi-opdrachtregeleditor in Bedankt heeft in principe dezelfde commando's als de vi(1) redacteur met
de volgende uitzonderingen:

· Je begint in de invoegmodus.

· Er zijn opdrachten voor de bestandsnaam en het voltooien van opdrachten: =, \, *, ^X, ^E, ^F en,
optioneel, En .

· De _ commando is anders (in Bedankt, het is het laatste argumentcommando; in vi(1) het gaat
naar het begin van de huidige regel).

· De / en G commando's bewegen in de tegenovergestelde richting van de j opdracht.

· Commando's die in een enkele regeleditor geen zin hebben, zijn niet beschikbaar (bijv. screen
bewegingsopdrachten en ex(1)-stijl dubbele punt (:) opdrachten).

Like vi(1), er zijn twee modi: "insert" -modus en "command" -modus. In de invoegmodus de meeste
tekens worden eenvoudigweg in de buffer op de huidige cursorpositie geplaatst terwijl ze worden getypt;
Sommige karakters worden echter speciaal behandeld. In het bijzonder zijn dit de volgende karakters
uit de stroom gehaald tty(4) instellingen (zie stijf(1)) en hebben hun gebruikelijke betekenis (normale waarden
staan ​​tussen haakjes): kill (^U), erase (^?), werase (^W), eof (^D), intr (^C) en quit (^\).
Naast het bovenstaande worden de volgende tekens ook speciaal behandeld in de invoegtoepassing
modus:

^E Opsomming van opdrachten en bestandsnamen (zie hieronder).

^F Voltooiing van opdracht en bestandsnaam (zie hieronder). Indien tweemaal achter elkaar gebruikt, wordt de lijst met
mogelijke voltooiingen worden weergegeven; bij een derde keer gebruik wordt de voltooiing ongedaan gemaakt.

^H Wist het vorige teken.

^ J | ^M Einde van de regel. De huidige regel wordt gelezen, geparseerd en uitgevoerd door de shell.

^V Letterlijk volgende. Het volgende getypte teken wordt niet speciaal behandeld (kan worden gebruikt om
voer de karakters in die hier worden beschreven).

^X Uitbreiding van opdrachten en bestandsnamen (zie hieronder).

Zet de editor in opdrachtmodus (zie hieronder).

Optionele bestandsnaam en opdrachtvoltooiing (zie ^F hierboven), ingeschakeld met reeks -o
vi-tabblad compleet.

In de commandomodus wordt elk teken geïnterpreteerd als een commando. Personages die dat niet doen
corresponderen met commando's, zijn illegale combinaties van commando's, of zijn commando's die dat niet kunnen zijn
uitgevoerd, veroorzaken allemaal pieptonen. In de volgende opdrachtbeschrijvingen wordt een [n] geeft de
opdracht kan worden voorafgegaan door een nummer (bijv 10l beweegt 10 tekens naar rechts); indien geen nummer
voorvoegsel wordt gebruikt, n wordt aangenomen dat dit 1 is, tenzij anders aangegeven. De term ‘actueel
position” verwijst naar de positie tussen de cursor en het teken vóór de cursor.
Een “woord” is een reeks letters, cijfers en onderstrepingstekens of een reeks niet-
letters, niet-cijfers, niet-onderstrepingstekens en niet-spatietekens (bijv. “ab2*&^” bevat twee
woorden) en een “groot woord” is een reeks tekens die geen witruimte bevatten.

special Bedankt vi-opdrachten:

De volgende opdrachten bevinden zich niet in, of verschillen van, de normale vi-bestandseditor:

[n]_ Voeg een spatie in, gevolgd door de nHet grote woord van het laatste bevel in de geschiedenis
op de huidige positie en ga naar de invoegmodus; als n is niet gespecificeerd, de laatste
woord wordt ingevoegd.

# Voeg het commentaarteken ('#') in aan het begin van de huidige regel en keer terug
de lijn naar de schaal (equivalent aan Ik#^J).

[n]g Vind ik leuk G, behalve als n niet is gespecificeerd, gaat het naar de meest recent onthouden
lijn.

[n]v Regel bewerken n met de vi(1) redacteur; als n is niet gespecificeerd, de huidige regel is dat wel
bewerkt. Het feitelijk uitgevoerde commando is fc -e ${VISUAL:-${EDITOR:-vi}} n.

* en ^X Commando- of bestandsnaamuitbreiding wordt toegepast op het huidige grote woord (met een
toegevoegd '*' als het woord geen bestandsglobbing-tekens bevat) – het grote woord is
vervangen door de resulterende woorden. Als het huidige grote woord het eerste is op de
regel of volgt een van de tekens ';', '|', '&', '(' of ')', en doet dat niet
een schuine streep ('/') bevatten, dan is de opdrachtuitbreiding voltooid; anders bestandsnaam
uitbreiding is gedaan. Commando-uitbreiding zal tegen iedereen het grote woord evenaren
aliassen, functies en ingebouwde opdrachten, evenals alle gevonden uitvoerbare bestanden
door de mappen in de parameter PATH te doorzoeken. Uitbreiding van bestandsnaam komt overeen
het grote woord tegen de bestanden in de huidige map. Na uitbreiding zal de
de cursor wordt net voorbij het laatste woord geplaatst en de editor bevindt zich in de invoegmodus.

[n]\, [n]^F, [n] , En [n]
Voltooiing van de opdracht/bestandsnaam. Vervang het huidige grote woord door het langste
unieke match verkregen na het uitvoeren van de uitbreiding van de opdracht en de bestandsnaam.
wordt alleen erkend als de vi-tabblad compleet optie is ingesteld, terwijl is alleen
erkend als de vi-esccompleet optie is ingesteld (zie reeks -o). Als n is gespecificeerd,
de nDe mogelijke voltooiing wordt geselecteerd (zoals gerapporteerd door de opdracht/bestandsnaam
opsommingsopdracht).

= en ^E Opsomming van opdracht-/bestandsnamen. Maak een lijst van alle opdrachten of bestanden die overeenkomen met de
huidige grote woord.

^V Geef de versie weer van Bedankt. De huidige bewerkingsbuffer wordt hersteld zodra een
toets wordt ingedrukt. De hersteltoetsaanslag wordt genegeerd.

@c Macro-uitbreiding. Voer de opdrachten uit die in de alias staan c.

Commando's voor intralijnbeweging:

[n]hand [n]^ H
Ga naar links n tekens.

[n]l en [n]
Ga naar rechts n tekens.

0 Ga naar kolom 0.

^ Ga naar het eerste teken zonder witruimte.

[n]| Verplaats naar kolom n.

$ Ga naar het laatste teken.

[n]b Ga terug n woorden.

[n]B Ga terug n grote woorden.

[n]e Ga vooruit naar het einde van het woord, n tijden.

[n]E Ga verder naar het einde van het grote woord, n tijden.

[n]w Ga vooruit n woorden.

[n]W Ga vooruit n grote woorden.

% Vind een match. De redacteur kijkt uit naar het dichtstbijzijnde haakje, haakje of accolade
en verplaatst de cursor vervolgens naar het overeenkomende haakje, haakje of accolade.

[n]fc Ga vooruit naar de ne verschijning van het personage c.

[n]Fc Ga achteruit naar de ne verschijning van het personage c.

[n]tc Ga vooruit naar net voor de ne verschijning van het personage c.

[n]Tc Ga achteruit naar net vóór de ne verschijning van het personage c.

[n]; Herhaalt de laatste f, F, tof T opdracht.

[n], Herhaalt de laatste f, F, tof T commando, maar beweegt in de tegenovergestelde richting.

Commando's voor beweging tussen lijnen:

[n]J, [n]+, en [n]^N
Ga naar de nde volgende regel in de geschiedenis.

[n]k, [n]-, En [n]^P
Ga naar de nde vorige regel in de geschiedenis.

[n]G Verplaats naar lijn n in de geschiedenis; als n is niet gespecificeerd, het nummer van de eerste
onthouden lijn wordt gebruikt.

[n]g Vind ik leuk G, behalve als n niet is opgegeven, gaat deze naar de meest recent onthouden regel.

[n]/snaar
Zoek terug in de geschiedenis naar de ne regel bevat snaar; als snaar
begint met '^', de rest van de string moet aan het begin van de geschiedenis verschijnen
lijn zodat deze overeenkomt.

[n]?snaar
Hetzelfde als /, behalve dat het vooruit door de geschiedenis zoekt.

[n]n Zoek naar de ne voorkomen van de laatste zoekreeks; de richting van de zoektocht
is hetzelfde als de laatste zoekopdracht.

[n]N Zoek naar de ne voorkomen van de laatste zoekreeks; de richting van de zoektocht
is het tegenovergestelde van de laatste zoekopdracht.

ANSI-CurUp, PC-PgUp
Neem de tekens vanaf het begin van de regel naar de huidige cursorpositie als
zoekreeks en voer een achterwaartse geschiedeniszoekopdracht uit naar regels die hiermee beginnen
snaar; behoud de cursorpositie. Dit werkt alleen in de invoegmodus en blijft behouden
ingeschakeld.

Bewerk opdrachten

[n]a Tekst toevoegen n keer; gaat naar de invoegmodus net na de huidige positie. De
append wordt alleen gerepliceerd als de opdrachtmodus opnieuw wordt geopend, dwz is gebruikt.

[n]A Hetzelfde als a, behalve dat het aan het einde van de regel wordt toegevoegd.

[n]i Tekst invoegen n keer; gaat naar de invoegmodus op de huidige positie. De invoeging
wordt alleen gerepliceerd als de opdrachtmodus opnieuw wordt geopend, dwz is gebruikt.

[n]Ik Hetzelfde als i, behalve dat het invoegen vlak vóór het eerste niet-lege teken gebeurt.

[n]s Vervang de volgende n tekens (dwz verwijder de tekens en ga naar invoegen
mode).

S Vervang de hele regel. Alle tekens vanaf het eerste niet-lege teken tot het einde
van de regel worden verwijderd en de invoegmodus wordt geactiveerd.

[n]cverplaats-cmd
Verander van de huidige positie naar de positie die voortvloeit uit n verplaats-cmds (dwz
verwijder het aangegeven gebied en ga naar de invoegmodus); als verplaats-cmd is c, de lijn
vanaf het eerste niet-lege teken wordt gewijzigd.

C Wijzigen van de huidige positie naar het einde van de regel (dat wil zeggen verwijderen naar het einde van
de regel en ga naar de invoegmodus).

[n]x Verwijder de volgende n tekens.

[n]X Wis de vorige n tekens.

D Verwijder tot het einde van de regel.

[n]dverplaats-cmd
Verwijder van de huidige positie naar de positie die voortkomt uit n verplaats-cmds;
verplaats-cmd is een bewegingscommando (zie hierboven) of d, in welk geval de huidige regel is
geschrapt.

[n]rc Vervang de volgende n karakters met het karakter c.

[n]R Vervangen. Ga naar de invoegmodus, maar overschrijf bestaande tekens in plaats van in te voegen
vóór bestaande karakters. De vervanging wordt herhaald n tijden.

[n]~ Verander het hoofdlettergebruik van de volgende n tekens.

[n]yverplaats-cmd
Yank van de huidige positie naar de positie die voortkomt uit n verplaats-cmdis in de
rukbuffer; als verplaats-cmd is y, de hele lijn wordt getrokken.

Y Yank vanaf de huidige positie naar het einde van de regel.

[n]p Plak de inhoud van de yankbuffer net na de huidige positie, n tijden.

[n]P Hetzelfde als p, behalve dat de buffer op de huidige positie wordt geplakt.

Diverse vi-opdrachten

^J en ^M
De huidige regel wordt gelezen, geparseerd en uitgevoerd door de shell.

^L en ^R
Teken de huidige lijn opnieuw.

[n]. Voer de laatste bewerkingsopdracht opnieuw uit n tijden.

u Maak het laatste bewerkingscommando ongedaan.

U Maak alle wijzigingen op de huidige regel ongedaan.

PC Home-, End-, Del- en cursortoetsen
Ze bewegen zoals verwacht, zowel in de invoeg- als in de opdrachtmodus.

intr en ophouden
De interrupt- en quit-terminaltekens zorgen ervoor dat de huidige regel wordt verwijderd en
een nieuwe prompt die moet worden afgedrukt.

Gebruik mksh-static online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Grondig schoon
    Grondig schoon
    Een Kotlin-script dat alle builds nukes maakt
    caches van Gradle/Android-projecten.
    Handig als Gradle of de IDE je dat toestaan
    omlaag. Het script is getest
    macOS, maar ...
    Deep clean downloaden
  • 2
    Eclipse Checkstyle-plug-in
    Eclipse Checkstyle-plug-in
    De Eclipse Checkstyle-plug-in
    integreert de Checkstyle Java-code
    auditor in de Eclipse IDE. De
    plug-in geeft real-time feedback aan
    de gebruiker over geweld...
    Eclipse Checkstyle plug-in downloaden
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player is een gratis mediaspeler
    software, deels gebaseerd op WMP en VLC. De
    speler is in een minimalistische stijl, met
    meer dan tien themakleuren, en kan ook
    b ...
    AstrOrzPlayer downloaden
  • 4
    movistartv
    movistartv
    Kodi Movistar+ TV is een ADDON voor XBMC/
    Het is mogelijk dat u een
    decodificator van de IPTV-services
    Movistar is geïntegreerd in één van de los
    mediacentra ma...
    Movistartv downloaden
  • 5
    Code :: Blocks
    Code :: Blocks
    Code::Blocks is een gratis, open-source,
    platformonafhankelijke C, C++ en Fortran IDE
    gebouwd om aan de meest veeleisende behoeften te voldoen
    van zijn gebruikers. Het is ontworpen om zeer te zijn
    strekt zich uit...
    Code::Blokken downloaden
  • 6
    Te midden van
    Te midden van
    Midden of geavanceerde Minecraft-interface
    en Data/Structure Tracking is een hulpmiddel om
    een overzicht van een Minecraft weergeven
    wereld, zonder deze daadwerkelijk te creëren. Het
    kan ...
    Midden downloaden
  • Meer "

Linux-commando's

Ad