Skip to main content

Linux - Unix Command: bash

GTA 5: LSPDFR Kuffs FiveM/vRP Roleplay "The Best Shootout Scene Ever" (Maj 2025)

GTA 5: LSPDFR Kuffs FiveM/vRP Roleplay "The Best Shootout Scene Ever" (Maj 2025)
Anonim

Linux-kommandot Våldsamt slag är ensh-kompatibel kommandospråk tolk som kör kommandon som läses från standardinmatningen eller från en fil.Våldsamt slag innehåller också användbara funktioner från Korn och C-skalen (ksh ochcsh).

Bash Alternativ

Förutom de enstaka skalalternativen som dokumenteras i beskrivningen avuppsättning inbyggda kommandot,våldsamt slag tolkar följande alternativ när det åberopas:

  • -c sträng: Om-c alternativet är närvarande, då kommandon läses från sträng . Om det finns argument efter sträng , de tilldelas de positionsparametrar som börjar med$0.
  • -jag: Om-jag alternativet är närvarande, skalet är interaktiv .
  • -l: Göravåldsamt slag agera som om det hade anropats som ett inloggningsskal.
  • -r: Om-r alternativet är närvarande, blir skalet begränsad.
  • -s: Om-s alternativet är närvarande, eller om inga argument kvarstår efter alternativbehandling, läses kommandon från standardinmatningen. Med det här alternativet kan positionsparametrar ställas in när ett interaktivt skal aktiveras.
  • -D: En lista över alla dubbla citerade strängar föregås av$ skrivs ut på standardutgången. Det här är strängarna som är föremål för språköversättning när den nuvarande platsen inte ärC ellerPOSIX. Detta innebär att -n alternativ; inga kommandon kommer att utföras.
  • - + O shopt_option : shopt_option är ett av de skalalternativ som accepteras avshopt inbyggt. Om shopt_option är närvarande,-O anger värdet av det alternativet, och+ O förhindrar det. Om shopt_option levereras inte, namnen och värdena på skalalternativen accepterade avshopt skrivs ut på standardutgången. Om alternativet för inbjudan är + O, utsignalen visas i ett format som kan återanvändas som inmatning.
  • --: en-- signalerar slutet på alternativen och inaktiverar ytterligare alternativbehandling. Eventuella argument efter-- behandlas som filnamn och argument. Ett argument av- är ekvivalent med--.

Våldsamt slag tolkar också ett antal alternativ med flera tecken. Dessa alternativ måste visas på kommandoraden innan enskilda teckenalternativen ska identifieras:

  • --dump-po-strängar: Ekvivalent med-D, men utsignalen är i GNU gettext po (bärbart objekt) filformat.
  • --dump-strängar: Ekvivalent med-D.
  • --hjälp: Visa ett användemeddelande på standardutmatning och avsluta med framgång.
  • --init-fil: fil och --rcfile fil : Utför kommandon från fil istället för den vanliga personliga initialiseringsfilen ~ / .Bashrc om skalet är interaktivt.
  • --logga in: Ekvivalent med-l.
  • --noediting: Använd inte GNUreadline bibliotek för att läsa kommandoraden när skalet är interaktivt.
  • --noprofile: Läs inte den systemstarta startfilen / Etc / profile eller någon av de personliga initialiseringsfilerna ~ / .Bash_profile , ~ / .Bash_login , eller ~ / .Profile . Som standardvåldsamt slag läser dessa filer när det är påkallat som ett inloggningsskal.
  • --norc: Läs inte och kör den personliga initialiseringsfilen ~ / .Bashrc om skalet är interaktivt. Detta alternativ är aktiverat som standard om skalet är påkallat somsh.
  • --posix: Ändra beteendet hosvåldsamt slag där standardoperationen skiljer sig från POSIX-standarden för att matcha standarden ( posix-läge ).
  • --restricted: Skalet blir begränsat.
  • --rpm-kräver: Producera listan över filer som krävs för att skalskriptet ska köras. Detta innebär "-n" och är föremål för samma begränsningar som kompileringstidsfelkontrollkontrollen. Backticks, tester och evals analyseras inte så att vissa beroenden kan missas.
  • --mångordig: Ekvivalent med-v.
  • --version: Visa versionsinformation för denna instans avvåldsamt slag på standardutgången och avsluta med framgång.

Argument

Om argument kvarstår efter alternativbehandling och inte heller-c inte heller-s alternativet har levererats antas det första argumentet vara namnet på en fil som innehåller skalkommandon. Om våldsamt slag åberopas på detta sätt,$0 är inställd på namnet på filen, och positionsparametrarna är inställda på de återstående argumenten.Våldsamt slag läser och kör kommandon från den här filen; går sedan ut.Våldsamt slagExitstatus är utgångsstatus för det sista kommandot som körs i skriptet. Om inga kommandon exekveras är utgångsstatusen 0. Ett försök görs först för att öppna filen i den aktuella katalogen, och om ingen fil hittas, söker skalet i katalogerna iVÄG för manuset.

Åkallan

en inloggningsskal är en vars första karaktär av argumentet noll är a-, eller en började med--logga in alternativ.

En interaktiv skal är en startad utan argument utan argument och utan-c alternativ vars standardingång och utgång är båda anslutna till terminaler som bestäms av isatty (3), eller en som började med-jag alternativ.PS1 är inställd och $- inkluderar om bash är interaktivt, vilket tillåter ett skalskript eller en startfil att testa detta tillstånd.

Följande stycken beskriver hurvåldsamt slag exekverar sina startfiler. Om någon av filerna finns men inte kan läsas,våldsamt slag rapporterar ett fel. Tildes expanderas i filnamn som beskrivs i Tilde Expansion.

Närvåldsamt slag åberopas som ett interaktivt inloggningsskal eller som ett icke-interaktivt skal med--logga in alternativet läser och körs först kommandon från filen / Etc / profile , om den filen finns. Efter att ha läst den filen söker den efter ~ / .Bash_profile , ~ / .Bash_login , och ~ / .Profile , i den ordningen, och läser och exekverar kommandon från den första som existerar och är läsbar. De--noprofile alternativet kan användas när skalet börjar hämma detta beteende.

När ett inloggningsskal avslutas,våldsamt slag läser och kör kommandon från filen ~ / .Bash_logout , om den existerar.

När ett interaktivt skal som inte är ett inloggningsskal startas,våldsamt slag läser och kör kommandon från ~ / .Bashrc , om den filen finns. Detta kan hämmas genom att använda--norc alternativ. De--rcfile fil alternativet kommer att tvingasvåldsamt slag att läsa och exekvera kommandon från fil istället för ~ / .Bashrc .

Närvåldsamt slag startas icke-interaktivt - för att köra ett skalskript, till exempel - det letar efter variabelnBASH_ENV i miljön expanderar dess värde om det visas där och använder det expanderade värdet som namnet på en fil som ska läsas och köras.Våldsamt slag beter sig som om följande kommando utfördes:

om -n "$ BASH_ENV"; då. "$ BASH_ENV"; fi

men värdet avVÄG variabel används inte för att söka efter filnamnet.

Omvåldsamt slag åberopas med namnetsh, försöker den efterlikna uppstartsbeteendet hos historiska versioner avsh så nära som möjligt, samtidigt som de överensstämmer med POSIX-standarden. När det kallas ett interaktivt inloggningsskal eller ett icke-interaktivt skal med--logga in alternativet försöker man först att läsa och utföra kommandon från / Etc / profile och ~ / .Profile , i den ordningen. De--noprofile alternativet kan användas för att hämma detta beteende. När påtalas som ett interaktivt skal med namnet sh, våldsamt slag letar efter variabelnENV, expanderar dess värde om det definieras och använder det expanderade värdet som namnet på en fil som ska läsas och köras. Eftersom ett skal kallas somsh Försöker inte läsa och exekvera kommandon från andra startfiler,--rcfile alternativet har ingen effekt. Ett icke-interaktivt skal åberopas med namnetsh Försöker inte läsa några andra startfiler. När åberopas somsh, våldsamt slag inträder posix läge efter att startfilerna har lästs.

Närvåldsamt slag startas i posix läge, som med--posix kommandoradsalternativ, följer POSIX-standarden för startfiler. I det här läget expanderar interaktiva skalENV variabel och kommandon läses och exekveras från filen vars namn är det expanderade värdet. Inga andra startfiler läses.

Våldsamt slag försöker bestämma när det körs av fjärrskalemonen, vanligtvis rshd . Om våldsamt slag bestämmer att det drivs av rshd , det läser och exekverar kommandon från ~ / .Bashrc , om den filen finns och är läsbar. Det kommer inte att göra detta om åberopas somsh. De--norc Alternativet kan användas för att hämma detta beteende och--rcfile Alternativet kan användas för att tvinga en annan fil att läsas, men rshd Påkallar normalt inte skalet med dessa alternativ eller tillåter dem att specificeras.

Om skalet startas med det effektiva användar- (grupp) -identifikationen inte lika med den verkliga användarens (grupp) id och-p alternativet levereras inte, inga startfiler läses, skalfunktioner är inte ärvda från miljön,SHELLOPTS variabel, om den visas i miljön, ignoreras, och det effektiva användar-idet är inställt på det verkliga användar-id. Om-p Alternativet tillhandahålls vid anrop, uppstartsbeteendet är detsamma, men det effektiva användar-idet återställs inte.

Definitioner

Följande definitioner används i resten av detta dokument:

  • Tom: Ett mellanslag eller en flik.
  • Ord: En sekvens av tecken betraktas som en enda enhet av skalet. Även känd som a tecken.
  • namn: en ord som bara består av alfanumeriska tecken och understreck, och börjar med ett alfabetiskt tecken eller ett understreck. Också kallad enidentifierare.
  • meta~~POS=TRUNC: En karaktär som skiljer ord när den inte är uppräknad. En av följande:| &; () <> mellanslag
  • Kontrolloperatör: A tecken som utför en kontrollfunktion. Det är en av följande symboler: || & && ; ;; ( ) |

Reserverade ord

Reserverade ord är ord som har en speciell betydelse för skalet. Följande ord är erkända som reserverade när oboterade och antingen det första ordet av ett enkelt kommando eller det tredje ordet av afallellerför kommando:

! fall gör det elif annars esac fi för funktion om i välj sedan tills {} tid

Shell grammatik: enkla kommandon

en enkelt kommando är en sekvens av valfria variabla uppdrag följt avtomseparerade ord och omdirigeringar och avslutas av a kontrolloperatör . Det första ordet anger kommandot som ska utföras och skickas som argument noll. De återstående orden överförs som argument till det åberopade kommandot.

Returvärdet av a enkelt kommando är dess utgångsstatus, eller 128+ n om kommandot avslutas med signal n .

pipelines

en rörledning är en sekvens av en eller flera kommandon separerade av tecknet|. Formatet för en rörledning är tid -p ! kommando | kommando2 … .

Standardutgången av kommando ansluts via ett rör till standardinmatningen på kommando2 . Denna anslutning utförs före eventuella omdirigeringar som anges av kommandot.

Om det reserverade ordet! föregår en pipeline är utgångsläget för den här rörledningen den logiska INTE av utgångsstatusen för det sista kommandot. Annars är ledningens status utgångsstatus för det sista kommandot. Skalet väntar på att alla kommandon i rörledningen avslutas innan ett värde returneras.

Omtid reserverat ord föregås av en pipeline, den förflutna liksom användarens och systemets tidskrävande av dess genomförande rapporteras när rörledningen avslutas. De-p Alternativet ändrar utdataformatet till det som anges av POSIX. DeTIDSFORMAT variabeln kan ställas in i en formatsträng som anger hur tidsinformationen ska visas.

Varje kommando i en pipeline utförs som en separat process (till exempel i en subshell).

listor

en lista är en sekvens av en eller flera ledningar separerade av en av operatörerna;, &, &&, eller||, och valfritt avslutad av en av;, &, eller.

Av dessa listoperatörer,&& och|| har samma företräde, följt av; och&, som har samma prioritet.

En sekvens av en eller flera nya linjer kan förekomma i a lista istället för en semikolon för att avgränsa kommandon.

Om ett kommando avslutas av kontrolloperatören&, skallet utför kommandot i bakgrund i en subshell. Skalet väntar inte på att kommandot ska slutföras och returstatusen är 0. Kommandon separerade av a; exekveras sekventiellt skalet väntar på att varje kommando upphör i sin tur. Returstatusen är utgångsstatus för det sista kommandot som körts.

Kontrolloperatörerna&& och|| beteckna OCH listor respektive OR listor. En AND-lista har formuläret

kommando1 && kommando2

kommando2 exekveras om, och endast om, kommando1 returnerar en utgångsstatus med noll.

En OR-lista har formuläret

kommando1 || kommando2

kommando2 exekveras om och endast om kommando1 returnerar en icke-noll utgångsstatus. Återställningsstatus för AND och OR-listor är utgångsstatus för det sista kommandot som exekverats i listan.

Sammansatta kommandon

en sammansatt kommando är ett av följande:

(lista) : lista exekveras i en subshell. Variabla uppdrag och inbyggda kommandon som påverkar skalets miljö förblir inte i kraft efter att kommandot har slutförts. Returstatusen är utgångsstatus för lista .

{list; } : lista Utförs enkelt i den nuvarande skalmiljön. lista måste avslutas med en nyline eller semikolon. Detta är känt som a gruppkommando . Returstatusen är utgångsstatus för lista . Observera att till skillnad från metateklarna( och), { och} är reserverade ord och måste uppstå där ett reserverat ord tillåts att erkännas. Eftersom de inte orsakar ordet, måste de separeras från lista genom vithet.

((uttryck)) : The uttryck utvärderas enligt de regler som beskrivs under Aritmetisk utvärdering. Om värdet av uttrycket är icke-noll är returstatusen 0; annars är returstatusen 1. Detta motsvarar exaktlåta ' uttryck '.

uttryck : Återställ en status på 0 eller 1 beroende på utvärderingen av det villkorliga uttrycket uttryck . Uttryck består av primarierna som beskrivs nedan under Villkorliga uttryck. Word splitting och pathname expansion utförs inte på orden mellan och; tilde expansion, parameter och variabel expansion, aritmetisk expansion, kommando substitution, process substitution och citat borttagning utförs.

När== och!= operatörer används, strängen till höger om operatören betraktas som ett mönster och matchas enligt de regler som beskrivs underPattern Matching. Returvärdet är 0 om strängen matchar eller inte matchar mönstret respektive 1 på annat sätt. Varje del av mönstret kan citeras för att tvinga det att matchas som en sträng.

Uttryck kan kombineras med följande operatörer, listade i fallande ordning med förrang:

  • (uttryck): Returnerar värdet på uttryck . Detta kan användas för att åsidosätta operatörernas normala företräde.
  • ! expressio n: Sant om uttryck är falskt.
  • expression1 && expression2 : Sant om båda expression1 och expression2 är sanna.
  • expression1 || expression2 : Sant om heller expression1 eller expression2 är sant.

De&& och|| operatörer utvärderar inte expression2 om värdet av expression1 är tillräcklig för att bestämma returvärdet för hela villkorligt uttryck.

  • för namn i ord ; do lista ; Gjort: Listan med ord som följeri expanderas, genererar en lista med objekt. Variabeln namn är inställd på varje element i den här listan i sin tur och lista exekveras varje gång. Omi ord utelämnas, denför kommandot körs lista en gång för varje positionsparameter som är inställd. Returstatusen är utgångsstatus för det sista kommandot som körs. Om expansionen av föremålen följeri resulterar i en tom lista, inga kommandon exekveras och returstatusen är 0.
  • för (( uttr1 ; uttr2 ; expr3 )) ; do lista ; Gjort: Först det aritmetiska uttrycket uttr1 utvärderas enligt de regler som beskrivs underAritmetisk utvärdering. Det aritmetiska uttrycket uttr2 utvärderas sedan upprepade gånger tills det utvärderas till noll. Varje gång uttr2 utvärderar till ett icke-nollvärde, lista exekveras och det aritmetiska uttrycket expr3 utvärderas. Om något uttryck utelämnas uppträder det som om det utvärderas till 1. Returvärdet är utgångs status för det sista kommandot i lista Det är exekverat eller felaktigt om något av uttrycken är ogiltigt.
  • Välj namn i ord ; do lista ; Gjort: Listan med ord som följeri expanderas, genererar en lista med objekt. Satsen med expanderade ord skrivs ut på standardfelet, som föregås av ett nummer. Omi ord utelämnas, positioneringsparametrarna skrivs ut. De PS3 prompt visas då och en linje läses från standardinmatningen. Om raden består av ett tal som motsvarar ett av de visade orden, värdet av namn är inställd på det ordet. Om raden är tom visas orden och prompten igen. Om EOF läses, slutförs kommandot. Eventuella andra värdelärande orsaker namn att ställas till null. Linjeläsningen sparas i variabelnSVAR. De lista exekveras efter varje val tills enha sönder kommandot körs. Utgångsstatusen förVälj är utgångsstatus för det sista kommandot som körs i lista , eller noll om inga kommandon exekverades.
  • fall ord i ( mönster | mönster : Afall kommandot först utökas ord , och försöker matcha det mot varje mönster i sin tur använder samma matchande regler som för expansion av söknamn. När en matchning hittas, motsvarar den lista exekveras. Efter den första matchen försökas inga efterföljande matchningar. Utgångsstatusen är noll om inget mönster matchar. Annars är det utgångsstatusen för det sista kommandot som körs i lista .
  • om lista ; sedan lista; och elif lista ; sedan lista ; … annan lista ; fi: Deom lista exekveras. Om utgångsstatusen är noll, skasedan lista exekveras. Annars, var och en elif lista exekveras i sin tur, och om dess utgångsstatus är noll motsvarar densedan lista exekveras och kommandot fullbordas. Annars är detannan lista exekveras, om det är närvarande. Utgångsstatusen är utgångsstatus för det sista kommandot som utförts, eller noll om inget villkor testats sant.
  • medan lista ; do lista ; Gjort och fram tills lista ; do lista ; Gjort: Themedan kommandot körs kontinuerligtdo lista så länge som det sista kommandot i lista returnerar en utgångsstatus med noll. Defram tills kommandot är identiskt medmedan kommando, förutom att testet är negativt dedo lista exekveras så länge som det sista kommandot i lista returnerar en icke-noll utgångsstatus. Utgångsstatusen förmedan ochfram tills Kommandon är utgångs status för den sistado lista kommandot exekverat, eller noll om ingen exekverades.
  • fungera namn () { lista ; }: Här definieras en funktion som heter namn . De kropp av funktionen är lista av kommandon mellan {och}. Denna lista utförs närhelst namn anges som namnet på ett enkelt kommando. Utgångsstatusen för en funktion är utgångsstatusen för det sista kommandot som utförs i kroppen.

kommentarer

I ett icke-interaktivt skal eller ett interaktivt skal i vilket interactive_comments alternativ tillshopt builtin är aktiverat, ett ord som börjar med# orsakar det ordet och alla återstående tecken på den linjen som ska ignoreras. Ett interaktivt skal utaninteractive_comments alternativet aktiverat tillåter inte kommentarer. De interactive_comments Alternativet är som standard i interaktiva skal.

citerar

citerar används för att ta bort den speciella betydelsen av vissa tecken eller ord på skalet. Att citera kan användas för att inaktivera speciell behandling för specialtecken, för att förhindra att reserverade ord erkänns som sådana och för att förhindra parameterutvidgning.

Var och en av metatecken listad ovan underDefinitioner har speciell betydelse för skalet och måste citeras om det är att representera sig själv.

När kommandot historiautvidgningsanläggningar används, används historia expansion karaktär, vanligtvis!, måste citeras för att förhindra historisk expansion.

Det finns tre citationsmekanismer: flykt karaktär , enkla citat och dubbla citat.

En icke-citerad backslash () är flykt karaktär . Den bevarar det bokstavliga värdet av nästa tecken som följer med undantag för . Om en paret visas och backslashen är inte själv citerad, den behandlas som en linje fortsättning (det vill säga den tas bort från ingångsströmmen och ignoreras effektivt).

Omslutande tecken i enkla citat bevarar det bokstavliga värdet av varje tecken i citat. Ett enda citat får inte uppstå mellan enkla citat, även om det förekommer en backslash.

Omslutande tecken i dubbla citat bevarar det bokstavliga värdet av alla tecken i citat, med undantag för$, ', och. Tecknen$ och' behålla sin speciella betydelse inom dubbla citat. Bakslaget behåller endast sin speciella betydelse när den följs av en av följande tecken:$, ', ', , eller. Ett dubbelt citat kan citeras inom dubbla citat genom att föregå det med en backslash.

De speciella parametrarna* och@ har speciell betydelse när det gäller dubbla citat.

Ord i formuläret$' sträng "behandlas speciellt. Ordet expanderar till sträng , med backslash-escaped tecken ersatt enligt ANSI C-standarden. Backslash escape-sekvenser, om de är närvarande, avkodas enligt följande:

  • en: alert (bell)
  • b: backspace
  • e: en flyktig person
  • f: formmatning
  • n: ny linje
  • r: vagnretur
  • t: horisontell flik
  • v: vertikal flik
  • \: backslash
  • ': enda citat
  • nnn : den åtta bitars tecken vars värde är oktaltalet nnn (ett till tre siffror)
  • x HH : den åtta bitars karaktär vars värde är hexadecimalt värde HH (ett eller två hex siffror)
  • c x : en kontroll- x karaktär

Det expanderade resultatet är ensamnoterat, som om dollarn tecknet inte hade varit närvarande.

En dubbelnoterad sträng föregås av ett dollar tecken ($) kommer att leda till att strängen översätts enligt den aktuella platsen. Om det aktuella läget ärC ellerPOSIXdollarn tecken ignoreras. Om strängen översätts och byts ut, är ersättningen dubbelnoterad.

parametrar

en parameter är en enhet som lagrar värden. Det kan vara en namn , ett tal eller en av de specialtecken som anges underSärskilda parametrar. För skalets syften, a variabel är en parameter betecknad med a namn . En variabel har a värde och noll eller mer attribut . Attributen tilldelas med hjälp avförklara inbyggt kommando.

En parameter ställs in om den har tilldelats ett värde. Nollsträngen är ett giltigt värde. När en variabel har ställts in kan den bara avbrytas med hjälp avoskränkt inbyggt kommando.

en variabel kan tilldelas genom ett uttalande av formuläret: namn = värde

Om värde inte ges, variabeln tilldelas nollsträngen. Allt värden genomgå tillde expansion, parameter och variabel expansion, kommando substitution, aritmetisk expansion och citat borttagning. Om variabeln har sinheltal attribut satt, då värde är föremål för aritmetisk expansion även om $ ((…)) expansionen inte används. Word splitting utförs inte, med undantag för'$@' som förklaras underSärskilda parametrar. Bannamnsexpansion utförs inte. Uppdragsutlåtanden kan också visas som argument tillförklara, typsätta, exportera, readonly, och lokal inbyggda kommandon.

Positionsparametrar

en positionsparametern är en parameter betecknad med ett eller flera siffror, annat än encifret 0. Positionsparametrar är tilldelade från skalets argument när det påkallas och kan omfördelas med hjälp avuppsättning inbyggt kommando. Positionsparametrar får inte tilldelas med uppdragsuppgifter. Positionsparametrarna byts tillfälligt ut när en skalfunktion utförs.

När en positionsparameter som består av mer än en enda siffra expanderas, måste den vara innesluten i axlar.

Särskilda parametrar

Skalet behandlar flera parametrar speciellt. Dessa parametrar kan endast hänvisas till; Tilldelning till dem är inte tillåtet.

  • *: Expanderar till positionsparametrarna, från en början. När expansionen sker inom dubbla citat, expanderar den till ett enda ord med värdet för varje parameter separerad av den första tecknet avIFS särskild variabel. Det är, "$*" är ekvivalent med "$1 c $2 c ", var c är den första karaktären av värdet avIFS variabel. OmIFS är avstängd, separeras parametrarna med mellanslag. OmIFS är null, parametrarna förenas utan mellanliggande separatorer.
  • @: Expanderar till positionsparametrarna, från en början. När expansionen sker inom dubbla citat, expanderar varje parameter till ett separat ord. Det är, "$@" är ekvivalent med "$1' '$2"… När det inte finns några positionsparametrar,"$@"och$@expandera till ingenting (de tas bort).
  • #: Expanderar till antalet positionsparametrar i decimal.
  • ?: Expanderar till status för den senast utförda förgrundsrörledningen.
  • -: Expanderar till de nuvarande alternativflaggarna som anges vid anrop, avuppsättning inbyggda kommandot eller de som ställs av själva skalet, t.ex.-jag alternativ.
  • $: Expanderar till processens ID-ID. I en () delskala expanderar den till process ID för det nuvarande skalet, inte delskalet.
  • !: Expanderar till process ID för den senast utförda bakgrunden (asynkron) kommandot.
  • 0: Expanderar till namnet på skalet eller skalskriptet. Detta är inställt på skalinitiering. Omvåldsamt slag åberopas med en fil med kommandon,$0 är inställd på namnet på den filen. Omvåldsamt slag startas med-c alternativ, då$0 är inställd på det första argumentet efter strängen som ska utföras, om en är närvarande. Annars är den inställd på filnamnet som används för att åberopavåldsamt slag, som ges av argument noll.
  • _: Vid start av skalet ställs in på det absoluta filnamnet på skalet eller skalskriptet som körs som passerat i argumentlistan. Därefter expanderar till det sista argumentet till föregående kommando, efter expansion. Ställ också in det fullständiga filnamnet för varje kommando som körs och placeras i miljön som exporteras till det kommandot. När du kontrollerar posten innehåller den här parametern namnet på den mailfil som för närvarande kontrolleras.

Shell Variabler

Följande variabler ställs in av skalet:

VÅLDSAMT SLAG: Expanderar till det fullständiga filnamnet som används för att åberopa denna instans avvåldsamt slag.

BASH_VERSINFO: En readonly array variabel vars medlemmar håller versionsinformation för denna instans av våldsamt slag. De värden som tilldelas till gruppmedlemmarna är följande:

  • BASH_VERSINFO 0: Det stora versionsnumret (den släpp )
  • BASH_VERSINFO 1: Den mindre versionen (the version )
  • BASH_VERSINFO 2: Plåsternivån
  • BASH_VERSINFO 3: Byggversionen
  • BASH_VERSINFO 4: Utlösningsstatusen ( beta1, till exempel)
  • BASH_VERSINFO 5: Värdet avMACHTYPE

BASH_VERSION: Expanderar till en sträng som beskriver versionen av denna instans avvåldsamt slag.

COMP_CWORD: Ett index till$ {COMP_WORDS} av ordet som innehåller aktuell markörposition. Denna variabel är endast tillgänglig i skalfunktioner som åberopas av de programmerbara färdigställningsanläggningarna.

COMP_LINE: Den aktuella kommandoraden. Denna variabel är endast tillgänglig i skalfunktioner och externa kommandon som åberopas av de programmerbara färdigställningsanläggningarna.

COMP_POINT: Indexet för aktuell markörposition i förhållande till början av det aktuella kommandot. Om den aktuella markörpositionen befinner sig i slutet av det aktuella kommandot, är värdet för denna variabel lika med$ {# COMP_LINE}. Denna variabel är endast tillgänglig i skalfunktioner och externa kommandon som åberopas av de programmerbara färdigställningsanläggningarna.

COMP_WORDS: En array-variabel som består av de enskilda orden i den aktuella kommandoraden. Denna variabel är endast tillgänglig i skalfunktioner som åberopas av de programmerbara färdigställningsanläggningarna.

DIRSTACK: En array-variabel som innehåller det aktuella innehållet i katalogstapeln. Kataloger visas i stapeln i den ordning de visas avdirs inbyggt. Att tilldela medlemmar av denna arrayvariabel kan användas för att modifiera kataloger som redan finns i stapeln, menpushd ochpopd builtins måste användas för att lägga till och ta bort kataloger. Uppgift till denna variabel ändrar inte den aktuella katalogen. OmDIRSTACK är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

EUID: Expanderar till användarens aktuella användarnamn, initierat vid start av skalet. Denna variabel är readonly.

FUNCNAME: Namnet på vilken funktion som nu exekverar skalen. Denna variabel finns endast när en skalfunktion exekveras. Uppdrag tillFUNCNAME har ingen effekt och returnerar en felstatus. OmFUNCNAME är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

GRUPPER: En array-variabel som innehåller listan över grupper av vilka den aktuella användaren är medlem. Uppdrag tillGRUPPER har ingen effekt och returnerar en felstatus. OmGRUPPER är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

HISTCMD: Historiknumret eller indexet i historiklistan för det aktuella kommandot. OmHISTCMD är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

HOSTNAME: Ange automatiskt till namnet på den aktuella värden.

HOSTTYPE: Ange automatiskt till en sträng som unikt beskriver vilken typ av maskin somvåldsamt slag exekveras. Standard är beroende av systemet.

RADNUMMER: Varje gång denna parameter refereras, ersätter skalet ett decimaltal som representerar det aktuella sekventiella linjenummeret (börjar med 1) inom ett skript eller en funktion. När det inte finns i ett skript eller en funktion, är det inte säkert att det värde som är substituerat är meningsfullt. OmRADNUMMER är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

MACHTYPE: Ange automatiskt till en sträng som fullständigt beskriver systemtypen på vilkenvåldsamt slag exekveras i standard GNU cpu-företag-system formatera. Standardvärdet är systemberoende.

OLDPWD: Den tidigare arbetsmappen som anges avCD kommando.

optarg: Värdet av det sista alternativargumentet som bearbetats avgetopts inbyggt kommando.

OPTIND: Indexet för nästa argument som ska behandlas avgetopts inbyggt kommando.

OSTYPE: Ange automatiskt till en sträng som beskriver operativsystemet på vilketvåldsamt slag exekveras. Standard är beroende av systemet.

PIPESTATUS: En array-variabel som innehåller en lista över utgångsstatusvärden från processerna i den mest nyligen genomförda förgrundsrörledningen, som endast innehåller ett enda kommando.

PPID: Processens ID för skalets förälder. Denna variabel är readonly.

PWD: Den nuvarande arbetsboken som anges avCD kommando.

SLUMPMÄSSIG: Varje gång denna parameter refereras, genereras ett slumptalstal mellan 0 och 32767. Sekvensen av slumptal kan initieras genom att tilldela ett värde till SLUMPMÄSSIG. OmSLUMPMÄSSIG är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

SVAR: Ställ in till rad av ingång som läses avläsa inbyggt kommando när inga argument levereras.

SEKUNDER: Varje gång den här parametern är refererad returneras antalet sekunder sedan shellanropning. Om ett värde är tilldelat tillSEKUNDER, värdet som returneras vid efterföljande referenser är antalet sekunder sedan uppdraget plus det tilldelade värdet. Om SEKUNDER är avstängd, förlorar den dess speciella egenskaper, även om den senare återställs.

SHELLOPTS: En kolonnseparerad lista över aktiverade skalalternativ. Varje ord i listan är ett giltigt argument för-o alternativ tilluppsättning inbyggt kommando. Alternativen som visas iSHELLOPTS är de rapporterade som på avset -o. Om denna variabel är i miljön närvåldsamt slag startar, kommer varje skal alternativ i listan aktiveras innan du läser några startfiler. Denna variabel är readonly.

SHLVL: Ökad av en varje gång en förekomst avvåldsamt slag är igång.

UID: Expanderar till användarens ID för den nuvarande användaren, initierad vid start av skalet. Denna variabel är readonly.

Följande variabler används av skalet. I vissa fall,våldsamt slag Tilldelar ett standardvärde till en variabel; dessa fall noteras.

BASH_ENV: Om denna parameter är inställd närvåldsamt slag exekverar ett skalskript, tolkas dess värde som ett filnamn som innehåller kommandon för att initiera skalet, som i ~ / .Bashrc . Värdet av BASH_ENV utsätts för parameterutvidgning, kommandosubstitution och aritmetisk expansion innan den tolkas som ett filnamn.VÄG Används inte för det resulterande filnamnet.

CDPATH: Sökvägen förCD kommando. Detta är en kolonavsorterad lista över kataloger där skalet letar efter destinationskataloger som anges avCD kommando. Ett provvärde är ".: ~: / Usr".

KOLUMNER: Används avVälj inbyggt kommando för att bestämma terminalbredd vid utskrift av vallista. Ställ in automatiskt vid mottagandet av en SIGWINCH.

COMPREPLY: En array variabel från vilkenvåldsamt slag läser de möjliga kompletteringar som genereras av en skalfunktion som åberopas av den programmerbara färdigställningsanläggningen.

FCEDIT: Standardredigeraren förfc inbyggt kommando.

FIGNORE: En kolonnseparerad lista över suffix som ska ignoreras när filnamn slutfördes. Ett filnamn vars suffix matchar en av posterna iFIGNORE utesluts från listan över matchade filnamn. Ett provvärde är ".o: ~".

GLOBIGNORE: En kolonnseparerad lista över mönster som definierar uppsättningen filnamn som ska ignoreras genom expansion av söknamn. Om ett filnamn som matchas med ett söknamnsexpansionmönster också matchar ett av mönstren iGLOBIGNORE, den tas bort från listan över träffar.

HISTCONTROL: Om inställt till ett värde av ignorespace , linjer som börjar med arymden tecken anges inte i historiklistan. Om inställt till ett värde av ignoredups , linjer som matchar den senaste historikraden anges inte. Ett värde av ignoreboth kombinerar de två alternativen. Om unset eller om det är inställt på något annat värde än ovanstående, sparas alla rader som läses av parsern i historiklistan, med förbehåll för värdet avHISTIGNORE. Denna variabelns funktion ersätts av HISTIGNORE. Den andra och efterföljande raden i ett kommandorad med flera linjer testas inte och läggs till i historiken oberoende av värdet avHISTCONTROL.

HISTFILE: Namnet på filen i vilken kommandoboken sparas. Standardvärdet är ~ / .Bash_history . Om deaktiveras sparas inte kommandotaggen när ett interaktivt skal avslutas.

HISTFILESIZE: Det maximala antalet rader som finns i historikfilen. När denna variabel har tilldelats ett värde, avkortas historikfilen, om det behövs, inte mer än det antal linjer. Standardvärdet är 500. Historikfilen trunkeras också till den här storleken efter att den skrivits när ett interaktivt skal lämnar.

HISTIGNORE: En kolonnseparerad lista över mönster som används för att bestämma vilka kommandorader som ska sparas på historiklistan. Varje mönster är förankrat i början av linjen och måste matcha hela linjen (ingen implicit '*"bifogas). Varje mönster testas mot linjen efter de kontroller som anges avHISTCONTROL tillämpas. Förutom de normala skalmönstret matchande tecknen, "&'matchar tidigare historikrad. '&"kan bli rymd med hjälp av en backslash; bakslaget tas bort innan du försöker matcha. Den andra och efterföljande raden i ett kommando med flera linjer är inte testade och läggs till i historiken oavsett värdet avHISTIGNORE.

HISTSIZE: Antalet kommandon som ska komma ihåg i kommandotaggen. Standardvärdet är 500.

HEM: Den nuvarande användarens hemkatalog standard argumentet förCD inbyggt kommando. Värdet på den här variabeln används även vid utförande av tilde-expansion.

HOSTFILE: Innehåller namnet på en fil i samma format som / etc / hosts Det bör läsas när skalet måste fylla i ett värdnamn. Listan över möjliga värdnamnstillägg kan ändras när skalet körs. Nästa gång värdnamnets slutförande försökas efter att värdet har ändrats,våldsamt slag lägger till innehållet i den nya filen till den befintliga listan. Om HOSTFILE är inställd men har inget värde,våldsamt slag försöker läsa / etc / hosts för att få listan över möjliga värdnamnstillägg. NärHOSTFILE är avstängd, rensar värdnamnslistan.

IFS: The Internal Field Separator används för orduppdelning efter expansion och att dela rader i ord medläsa inbyggt kommando. Standardvärdet är "''.

ignoreeof: Kontrollerar åtgärden av ett interaktivt skal vid mottagandet av enEOF tecken som enda ingången. Om inställt är värdet det antal på varandra följandeEOF tecken som måste skrivas som de första tecknen på en inmatningsrad innanvåldsamt slag utgångar. Om variabeln existerar men inte har ett numeriskt värde eller inget värde, är standardvärdet 10. Om det inte existerar,EOF betyder slutet av ingången till skalet.

inputrc: Filnamnet förreadline startfil, överstiger standardvärdet för ~ / .Inputrc .

LANG: Används för att bestämma lokalkategorin för någon kategori som inte är specifikt vald med en variabel som börjar medLC_.

LC_ALL: Denna variabel överstyrer värdet avLANG och någon annanLC_ variabel som anger en lokal kategori.

LC_COLLATE: Denna variabel bestämmer vilken sorteringsordning som används när du sorterar resultaten av söknamnsexpansion och bestämmer beteendet för intervalluttryck, ekvivalensklasser och sorteringssekvenser inom expansion av söknamn och mönstermatchning.

LC_CTYPE: Denna variabel bestämmer tolkningen av tecken och beteendet hos teckenklasserna i sökvägsexpansion och mönstermatchning.

LC_MESSAGES: Denna variabel bestämmer det språk som används för att översätta dubbla citerade strängar föregås av a$.

LC_NUMERIC: Denna variabel bestämmer den lokala kategorin som används för nummerformatering.

RADER: Används avVälj inbyggda kommandot för att bestämma kolonnlängden för utskriftslistor. Ställ in automatiskt vid mottagandet av en SIGWINCH.

POST: Om den här parametern är inställd på ett filnamn ochMAILPATH variabeln är inte inställd,våldsamt slaginformerar användaren om ankomsten av mail i den angivna filen.

MAILCHECK: Anger hur ofta (i sekunder)våldsamt slag checkar för post. Standard är 60 sekunder. När det är dags att söka efter post, gör skalet det innan den första prompten visas. Om denna variabel är avstängd eller inställd till ett värde som inte är ett tal som är större än eller lika med noll, avaktiverar skalet kontrollen av posten.

MAILPATH: En kolonnseparerad lista över filnamn som ska kontrolleras för post. Meddelandet som ska skrivas ut när mail kommer in i en viss fil kan specificeras genom att separera filnamnet från meddelandet med ett??. När det används i texten i meddelandet,$_ expanderar till namnet på den aktuella postfilen. Exempel:

MAILPATH = '/ var / mail / bfox? "Har du mail": ~ / skal-mail? "$ _ Har mail!"'

Våldsamt slag levererar ett standardvärde för den här variabeln, men platsen för användarfilerna som den använder är systemberoende (/ var / mail /$ USER).

OPTERR: Om inställt till värdet 1,våldsamt slag visar felmeddelanden som genereras avgetopts inbyggt kommando.OPTERR initieras till 1 varje gång skalet påkallas eller ett skalskript utförs.

VÄG: Sökvägen för kommandon. Det är en kolonnseparerad lista över kataloger där skalet letar efter kommandon. Standardvägen är systemberoende och ställs in av administratören som installerarvåldsamt slag. Ett gemensamt värde är "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT: Om denna variabel är i miljön närvåldsamt slag börjar, kommer skalet in posix-läge innan du läser startfilerna, som om--posix invokningsalternativ hade levererats. Om den är inställd när skalet löper,våldsamt slag möjliggör posix-läge som om kommandot set -o posix hade utförts.

PROMPT_COMMAND: Om inställt, exekveras värdet som ett kommando innan du utfärdar varje primärprompt.

PS1: Värdet på den här parametern expanderas och används som den primära snabbsträngen. Standardvärdet är " S- v $''.

PS2: Värdet på denna parameter expanderas som medPS1 och används som sekundär snabbsträng. Standard är "> ''.

PS3: Värdet på den här parametern används som prompten förVälj kommando.

PS4: Värdet på denna parameter expanderas som medPS1, och värdet skrivs ut före varje kommandovåldsamt slag visas under ett exekveringsspår. Den första karaktären avPS4 replikeras flera gånger, vid behov, för att indikera flera nivåer av indirektion. Standard är "+ ''.

TIDSFORMAT: Värdet på den här parametern används som en formatsträng som anger hur tidsinformationen för pipelines prefixed medtid reserverat ord ska visas. De % tecken introducerar en flyktsekvens som expanderas till ett tidsvärde eller annan information. Escape-sekvenserna och deras betydelser är som följer. Fästena anger frivilliga delar.

  • %%: En bokstavlig%
  • % p l R: Den förflutna tiden i sekunder
  • % p l U: Antalet CPU-sekunder som används i användarläge
  • % p l S: Antalet CPU-sekunder som används i systemläget
  • % P: CPU-procenten, beräknad som (% U +% S) /% R

Den frivilliga p är en siffra som anger precision , antalet fraktionerade siffror efter en decimalpunkt. Ett värde på 0 orsakar ingen decimal eller fraktion som ska matas ut. Högst tre platser efter decimalpunkten kan anges. värden på p större än 3 ändras till 3. Om p är inte angivet, värdet 3 används.

Den frivilligal specificerar ett längre format, inklusive minuter, av formuläret MM m SS . FF s. Värdet av p avgör huruvida fraktionen ingår.

Om denna variabel inte är inställd,våldsamt slag fungerar som om det hade värdet $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Om värdet är null visas ingen tidsinformation. En efterföljande newline läggs till när formatsträngen visas.

TMOUT: Om inställt till ett värde som är större än noll,TMOUT behandlas som standard timeout förläsa inbyggt. DeVälj Kommandot upphör om ingången inte kommer efterTMOUT sekunder när ingången kommer från en terminal.I ett interaktivt skal tolkas värdet som antalet sekunder att vänta på inmatning efter att den primära prompten har utfärdats.Våldsamt slag avslutas efter att ha väntat i det antal sekunder om ingången inte kommer fram.

auto_resume: Denna variabel kontrollerar hur skalet interagerar med användaren och jobbkontrollen. Om denna variabel är inställd behandlas enkla ord enkla kommandon utan omdirigeringar som kandidater för att återuppta ett befintligt stoppat jobb. Det finns ingen tvetydighet tillåtet. Om det finns mer än ett jobb som börjar med den sträng som skrivits, väljs det senaste jobbet. De namn av ett stoppat jobb, i det här sammanhanget är kommandoraden som används för att starta den. Om inställt på värdet exakt , strängen som levereras måste matcha namnet på ett stoppat jobb exakt; om den är inställd på delsträng , måste strängen som levereras matcha en substring av namnet på ett stoppat jobb. De delsträng värde ger funktionalitet som är analog med%? jobbidentifierare. Om den är inställd på något annat värde måste den medföljande strängen vara ett prefix av ett stoppat jobbs namn; Detta ger funktionalitet som är analog med% jobbidentifierare.

histchars: De två eller tre tecknen som styr historiaxpansion och tokenisering. Det första tecknet är historia expansion tecken, tecknet som signalerar början på en historiaxpansion, normalt "!'. Det andra tecknet är snabb substitution tecken, som används som stenografi för att genomsöka det föregående kommandot inmatade, ersätta en sträng för en annan i kommandot. Standard är '^'. Den valfria tredje tecknen är tecknet som indikerar att resten av raden är en kommentar när den hittas som ett teckens första tecken, normalt '#'. Historikkommentarteckenet orsakar att historikutbyte hoppas över för de återstående orden på linjen. Det orsakar inte nödvändigtvis att skalparsaren behandlar resten av raden som en kommentar.

arrayer

Våldsamt slag tillhandahåller endimensionella arrayvariabler. Vilken variabel som helst kan användas som en grupp; de förklara inbyggd kommer att uttryckligen förklara en array. Det finns ingen gränsvärde för storleken på en array eller något krav på att medlemmarna ska indexeras eller tilldelas sammanhängande. Arrayer indexeras med heltal och är nollbaserade.

En array skapas automatiskt om någon variabel har tilldelats att använda syntaxen namn index = värde . De index behandlas som ett aritmetiskt uttryck som måste utvärdera till ett antal som är större än eller lika med noll. För att uttryckligen deklarera en array, användförklara -a namn . förklara -a namn index accepteras också; de index ignoreras. Attribut kan anges för en arrayvariabel med hjälp avförklara och readonly builtins. Varje attribut gäller för alla medlemmar i en array.

Arrays har tilldelats att använda sammansatta uppdrag av formuläret namn =(värde 1 … värde n ), var vardera värde är av forme