Linux-kommandoen bash er ensh-kompatibel kommandospråk tolk som utfører kommandoer som leses fra standardinngangen eller fra en fil.bash inneholder også nyttige funksjoner fra Korn og C-skjellene (ksh ogcsh).
Bash Alternativer
I tillegg til enkeltkarakteristikk skalalternativene som er dokumentert i beskrivelsen avsett innebygd kommando,bash tolker følgende alternativer når det påberopes:
- -c streng: Hvis-c alternativet er til stede, så kommandoene leses fra string . Hvis det er argumenter etter string , de tilordnes posisjonsparametrene, begynner med$0.
- -Jeg: Hvis-Jeg alternativet er til stede, skallet er interaktiv .
- l: Gjørebash fungere som om det hadde blitt påkalt som et påloggingsskall.
- -r: Hvis-r alternativet er til stede, skallet blir begrenset.
- -s: Hvis-s alternativet er tilstede, eller hvis det ikke gjenstår argumenter etter valgbehandling, blir kommandoer lest fra standardinngangen. Dette alternativet gjør det mulig å angi posisjonsparametrene når man påkaller et interaktivt skall.
- -D: En liste over alle dobbelkodede strenge foran$ er trykt på standardutgangen. Dette er strengene som er underlagt språkoversettelse når gjeldende landestandard ikke erC ellerPOSIX. Dette innebærer -n alternativ; ingen kommandoer vil bli utført.
- - + O shopt_option : shopt_option er et av skallalternativene akseptert avshopt innebygd. Hvis shopt_option er tilstede,-O setter verdien av det alternativet, og+ O forstyrrer den. Hvis shopt_option er ikke levert, navnene og verdiene på skallalternativene akseptert avshopt skrives ut på standardutgangen. Hvis innringingsalternativet er + O, blir utgangen vist i et format som kan gjenbrukes som input.
- --: EN-- signaler slutten av alternativene og deaktiverer videre valgbehandling. Eventuelle argumenter etter-- blir behandlet som filnavn og argumenter. Et argument av- tilsvarer--.
bash tolker også en rekke multi-karakter alternativer. Disse alternativene må vises på kommandolinjen før de enkelte tegnalternativene skal gjenkjennes:
- --dump-po-strenger: Tilsvarende-D, men utgangen er i GNU gettext po (bærbart objekt) filformat.
- --dump-strenger: Tilsvarende-D.
- --hjelp: Vis en brukermelding på standardutgang og avslutt med hell.
- --init-fil: fil og --rcfile fil : Utfør kommandoer fra fil i stedet for standard personlig initialiseringsfil ~ / .Bashrc hvis skallet er interaktivt.
- --Logg Inn: Tilsvarendel.
- --noediting: Ikke bruk GNUreadline bibliotek for å lese kommandolinjer når skallet er interaktivt.
- --noprofile: Ikke les den systembaserte oppstartsfilen / Etc / profil eller noen av de personlige initialiseringsfilene ~ / Bash_profile , ~ / .Bash_login , eller ~ / .Profile . Som standard,bash leser disse filene når den påberopes som et påloggingsskall.
- --norc: Ikke les og utfør den personlige initialiseringsfilen ~ / .Bashrc hvis skallet er interaktivt. Dette alternativet er aktivert som standard hvis skallet er påkalt somsh.
- --posix: Endre oppførselen tilbash hvor standardoperasjonen er forskjellig fra POSIX-standarden for å matche standarden ( posisjonsmodus ).
- --restricted: Skallet blir begrenset.
- --rpm-krever: Lag listen over filer som kreves for at skalskriptet skal kjøre. Dette innebærer '-n' og er underlagt de samme begrensningene som kompileringstidsfeilkontrollen; Backticks, tester og evals blir ikke analysert, slik at noen avhengigheter kan bli savnet.
- --verbose: Tilsvarende-V.
- --versjon: Vis versjoninformasjon for denne forekomsten avbash på standard utgang og avslutte vellykket.
argumenter
Hvis argumenter forblir etter valgbehandling og heller ikke-c heller ikke-s alternativet har blitt levert, antas det første argumentet å være navnet på en fil som inneholder shell kommandoer. Hvis bash påberopes på denne måten,$0 er satt til navnet på filen, og posisjonsparametrene er satt til de gjenværende argumentene.bash leser og kjører kommandoer fra denne filen; så avslutter.bashUtgangsstatus er utgangsstatus for den siste kommandoen som utføres i skriptet. Hvis ingen kommandoer utføres, er utgangsstatusen 0. Et forsøk er først gjort for å åpne filen i gjeldende katalog, og hvis ingen fil er funnet, søker skallet katalogene iSTI for skriptet.
påkallelse
EN påloggingsskall er en hvis første tegn på argumentet null er a-, eller en startet med--Logg Inn alternativ.
en interaktiv skall er en startet uten argumenter uten valg og uten-c alternativ hvis standard inngang og utgang er begge koblet til terminaler som bestemt av isatty (3), eller en startet med-Jeg alternativ.PS1 er satt og $- Inkluderer hvis bash er interaktiv, slik at et skallskript eller en oppstartsfil kan teste denne tilstanden.
De følgende avsnittene beskriver hvordanbash kjører oppstartsfiler. Hvis noen av filene eksisterer, men ikke kan leses,bash rapporterer en feil. Tildes utvides i filnavn som beskrevet i Tilde Expansion.
Nårbash påberopes som et interaktivt påloggingsskall eller som et ikke-interaktivt skall med--Logg Inn alternativet, det leser og kjører først kommandoer fra filen / Etc / profil , hvis den filen eksisterer. Etter å ha lest den filen, ser den etter ~ / Bash_profile , ~ / .Bash_login , og ~ / .Profile , i den rekkefølgen, og leser og utfører kommandoer fra den første som eksisterer og er lesbar. De--noprofile Alternativet kan brukes når skallet begynner å hemme denne virkemåten.
Når et påloggingsskall utgår,bash leser og kjører kommandoer fra filen ~ / .Bash_logout , hvis den eksisterer.
Når et interaktivt skall som ikke er et påloggingsskall, er startet,bash leser og kjører kommandoer fra ~ / .Bashrc , hvis den filen eksisterer. Dette kan hemmes ved å bruke--norc alternativ. De--rcfile fil alternativet vil tvingebash å lese og utføre kommandoer fra fil i stedet for ~ / .Bashrc .
Nårbash er startet ikke-interaktivt - for å kjøre et shell-skript, for eksempel - det ser etter variabelenBASH_ENV i miljøet, utvider verdien hvis den vises der, og bruker den utvidede verdien som navnet på en fil som skal leses og utføres.bash oppfører seg som om følgende kommando ble utført:
hvis -n "$ BASH_ENV"; deretter . "$ BASH_ENV"; fi
men verdien avSTI variabel brukes ikke til å søke etter filnavnet. Hvisbash er påkalt med navnetsh, forsøker den å etterligne oppstartsprosessen av historiske versjoner avsh så nært som mulig, samtidig som de overholder POSIX-standarden. Når påkrevd som et interaktivt påloggingsskall eller et ikke-interaktivt skall med--Logg Inn alternativet, prøver den først å lese og utføre kommandoer fra / Etc / profil og ~ / .Profile , i den rekkefølgen. De--noprofile Alternativet kan brukes til å hemme denne oppførselen. Når påkalt som et interaktivt skall med navnet sh, bash ser etter variabelenENV, utvider verdien hvis den er definert, og bruker den utvidede verdien som navnet på en fil som skal leses og utføres. Siden et skall påkalt somsh forsøker ikke å lese og utføre kommandoer fra andre oppstartsfiler,--rcfile alternativet har ingen effekt. Et ikke-interaktivt skall påkalt med navnetsh forsøker ikke å lese andre oppstartsfiler. Når påkalt somsh, bash trer POSIX modus etter at oppstartsfilene er lest. Nårbash er startet i POSIX modus, som med--posix kommandolinjevalg, følger POSIX-standarden for oppstartsfiler. I denne modusen utvider de interaktive skjelleneENV variabel og kommandoer leses og utføres fra filen hvis navn er den utvidede verdien. Ingen andre oppstartsfiler leses. bash forsøker å bestemme når det kjøres av den eksterne skaldemonen, vanligvis rshd . Hvis bash bestemmer det drives av rshd , det leser og utfører kommandoer fra ~ / .Bashrc , hvis den filen finnes og er lesbar. Det vil ikke gjøre dette hvis påkalt somsh. De--norc alternativet kan brukes til å hemme denne oppførselen, og--rcfile alternativet kan brukes til å tvinge en annen fil til å bli lest, men rshd Påkaller ikke vanligvis skallet med disse alternativene eller tillater at de spesifiseres. Hvis skallet er startet med det effektive brukergruppen (gruppen) id ikke lik den virkelige brukerens (gruppe) id, og-p alternativet leveres ikke, ingen startfiler leses, shell-funksjoner er ikke arvet fra miljøet,SHELLOPTS variabel, hvis den vises i miljøet, ignoreres, og det effektive bruker-ID er satt til det virkelige bruker-ID. Hvis-p Alternativet leveres ved påkalling, oppstartsprosessen er den samme, men det effektive bruker-IDet tilbakestilles ikke. Følgende definisjoner brukes i resten av dette dokumentet: Reserverte ord er ord som har en spesiell betydning for skallet. Følgende ord er anerkjent som reservert når det er unotert og enten det første ordet av en enkel kommando eller det tredje ordet av asakellertil kommando: ! saken gjøres elif else esac fi for funksjon hvis i velg deretter til mens {} tid EN enkel kommando er en sekvens av valgfrie variable oppgaver etterfulgt avblankseparerte ord og omdirigeringer og avsluttet av a kontrolloperatør . Det første ordet spesifiserer kommandoen som skal utføres, og sendes som argument null. De resterende ordene blir sendt som argumenter til den påkalte kommandoen. Avkastningsverdien av a enkel kommando er utgangsstatus, eller 128+ n hvis kommandoen er avsluttet med signal n . EN rørledning er en sekvens av en eller flere kommandoer skilt av tegnet|. Formatet for en rørledning er tid -p ! kommando | Command2 … . Standard utgang av kommando er koblet via et rør til standardinngangen på Command2 . Denne forbindelsen utføres før eventuelle omdirigeringer spesifisert av kommandoen. Hvis det reserverte ordet! forut for en rørledning, er utgangsstatusen for denne rørledningen den logiske IKKE av avslutningsstatusen til den siste kommandoen. Ellers er statusen til rørledningen utgangsstatus for den siste kommandoen. Skallet venter på alle kommandoer i rørledningen for å avslutte før du returnerer en verdi. Hvistid reservert ord går foran en rørledning, det forsvunnet, samt bruker- og systemtid som forbrukes ved utførelsen, rapporteres når rørledningen avsluttes. De-p alternativet endrer utdataformatet til det som er spesifisert av POSIX. DeTIDSFORMAT variabel kan settes til en formatstreng som angir hvordan timingsinformasjonen skal vises. Hver kommando i en rørledning utføres som en separat prosess (for eksempel i en subshell). EN liste er en sekvens av en eller flere rørledninger skilt av en av operatørene;, &, &&, eller||, og eventuelt avsluttet av en av;, &, eller Av disse listeoperatørene,&& og|| har samme forrang, etterfulgt av; og&, som har samme forrang. En sekvens av en eller flere nye linjer kan vises i a liste i stedet for et semikolon for å avgrense kommandoer. Hvis en kommando blir avsluttet av kontrolloperatøren&, skalet utfører kommandoen i bakgrunn i en subshell. Skallet venter ikke på at kommandoen skal fullføres, og returstatusen er 0. Kommandoer skilt av a; utføres sekvensielt; skallet venter på at hver kommando skal si opp igjen. Returstatusen er utgangsstatus for den siste kommandoen som er utført. Kontrolloperatørene&& og|| betegne OG lister og ELLER lister, henholdsvis. En AND-liste har skjemaet Command1 && Command2 Command2 utføres hvis, og bare hvis, Command1 returnerer en utgangsstatus på null. En OR-liste har skjemaet Command1 || Command2 Command2 utføres hvis og bare hvis Command1 returnerer en null-utgangsstatus. Returneringsstatus for AND og ELLER-lister er utgangsstatus for den siste kommandoen som er utført i listen. EN sammensatte kommando er ett av følgende: (liste) : liste utføres i et underhell. Variable oppgaver og innebygde kommandoer som påvirker skallets miljø forblir ikke i kraft etter at kommandoen er fullført. Returstatusen er utgangsstatus for liste . {list; } : liste utføres bare i det nåværende skallmiljøet. liste må avsluttes med en newline eller semikolon. Dette kalles en gruppe kommando . Returstatusen er utgangsstatus for liste . Merk at i motsetning til meta tegnene( og), { og} er reserverte ord og må oppstå der et reservert ord tillates å bli gjenkjent. Siden de ikke forårsaker et ordbrudd, må de skilles fra liste etter hvite rom. ((uttrykk)) : Den uttrykk er vurdert i henhold til reglene beskrevet under Aritmetisk evaluering. Hvis verdien av uttrykket er null, er returstatusen 0; ellers er returstatusen 1. Dette er akkurat likla ' uttrykk '. uttrykk : Returner en status på 0 eller 1, avhengig av evalueringen av det betingede uttrykket uttrykk . Uttrykkene er sammensatt av primariene beskrevet under under Betingede uttrykk. Word splitting og pathname utvidelse utføres ikke på ordene mellom og; Tilde-utvidelse, parameter og variabel utvidelse, aritmetisk utvidelse, kommandosubstitusjon, prosessubstitusjon og fjerning av tilbud er utført. Når== og!= operatørene brukes, strengen til høyre for operatøren betraktes som et mønster og matches i henhold til reglene beskrevet underMønster Matching. Returneringsverdien er 0 hvis strengen samsvarer eller ikke samsvarer med mønsteret, henholdsvis, og 1 ellers. Enhver del av mønsteret kan siteres for å tvinge det til å bli matchet som en streng. Uttrykk kan kombineres ved hjelp av følgende operatører, oppført i avtagende rekkefølge: De&& og|| operatører vurderer ikke UTTRYKK2 hvis verdien av uttrykk1 er tilstrekkelig til å bestemme returverdien til hele betingelsesuttrykket. I et ikke-interaktivt skall eller et interaktivt skall der interactive_comments alternativ tilshopt builtin er aktivert, et ord som begynner med# forårsaker at ordet og alle gjenstående tegn på den linjen blir ignorert. Et interaktivt skall uteninteractive_comments alternativet aktivert tillater ikke kommentarer. De interactive_comments Alternativet er som standard i interaktive skjell. siterer brukes til å fjerne den spesielle betydningen av visse tegn eller ord til skallet. Quoting kan brukes til å deaktivere spesialbehandling for spesialtegn, for å hindre at reserverte ord blir anerkjent som sådan, og for å forhindre parameterutvidelse. Hver av metategn oppført under underdefinisjoner har spesiell betydning for skallet og må sitere hvis det er å representere seg selv. Når kommandoen Historieutvidelsesfasilitetene blir brukt, vil historieutvidelse karakter, vanligvis!, må siteres for å forhindre historisk ekspansjon. Det er tre sitering mekanismer: flykte karakter , enkelt anførselstegn og dobbel anførselstegn. Et ikke-sitert tilbakeslag () er den flykte karakter . Den bevarer den bokstavelige verdien av neste tegn som følger med unntak av Vedleggstegn i enkle sitater beholder den bokstavelige verdien av hvert tegn i sitatene. Et enkelt anførselstegn kan ikke forekomme mellom enkelt anførselstegn, selv når det går en tilbakeslag. Vedleggstegn i doble anførselstegn beholder bokstavelig verdi av alle tegnene i sitatene, med unntak av$, ', og. Karakterene$ og' beholde sin spesielle betydning innenfor dobbelt anførselstegn. Bakslaget beholder bare sin spesielle betydning når det etterfølges av ett av følgende tegn:$, ', ', , eller De spesielle parametrene* og@ Har spesiell betydning når du er i dobbelt anførselstegn. Ord i skjemaet$' string 'behandles spesielt. Ordet ekspanderer til string , erstattet med tilbakekledde tegn som er angitt i ANSI C-standarden. Backslash escape-sekvenser, hvis de er til stede, dekodes som følger: Det utvidede resultatet er enkeltnotert, som om dollartegnet ikke hadde vært til stede. En dobbelkvitert streng foran et dollarskilt ($) vil føre til at strengen blir oversatt i henhold til gjeldende landestandard. Hvis gjeldende landestandard erC ellerPOSIX, dollartegnet ignoreres. Hvis strengen er oversatt og erstattet, er erstatningen dobbeltnotert. EN parameter er en enhet som lagrer verdier. Det kan være en Navn , et tall eller ett av spesialtegnene som er oppført underSpesielle parametere. For skallets formål, a variabel er en parameter betegnet med a Navn . En variabel har a verdi og null eller mer egenskaper . Attributter er tilordnet ved hjelp averklære innebygd kommando. En parameter er angitt hvis den har blitt tildelt en verdi. Nullstrengen er en gyldig verdi. Når en variabel er innstilt, kan den bare slås av ved å brukeunset innebygd kommando. EN variabel kan tilordnes ved en erklæring av skjemaet: Navn = verdi Hvis verdi er ikke gitt, er variabelen tildelt null-strengen. Alle verdier gjennomgå tilde utvidelse, parameter og variabel ekspansjon, kommandosubstitusjon, aritmetisk ekspansjon og fjerning av tilbud. Hvis variabelen har sinheltall attributtsett, da verdi er gjenstand for aritmetisk ekspansjon selv om $ ((…)) ekspansjonen ikke blir brukt. Word splitting utføres ikke, med unntak av'$@' som forklart underSpesielle parametere. Utvidelse av stedsnavn utføres ikke. Oppdragsuttalelser kan også vises som argumenter tilerklære, typeset, eksport, skrivebeskyttet, og lokal innebygde kommandoer. EN posisjonsparameter er en parameter betegnet med ett eller flere sifre, bortsett fra enkeltsifret 0. Posisjonsparametere er tilordnet fra skallets argumenter når det påberopes, og kan omfordeles ved hjelp avsett innebygd kommando. Posisjonsparametere kan ikke tilordnes med oppgaveoppgavene. Posisjonsparametrene blir midlertidig erstattet når en skallfunksjon utføres. Når en posisjonsparameter bestående av mer enn ett siffer utvides, må den være innelukket i bøyler. Skallet behandler flere parametre spesielt. Disse parametrene kan bare refereres til; tildeling til dem er ikke tillatt. Følgende variabler er angitt av skallet: BASH: Utvider til hele filnavnet som brukes til å påberope denne forekomsten avbash. BASH_VERSINFO: En readonly array variabel hvis medlemmer har versjoninformasjon for denne forekomsten av bash. Verdiene som er tilordnet arraymedlemmene, er som følger: BASH_VERSION: Utvides til en streng som beskriver versjonen av denne forekomsten avbash. COMP_CWORD: En indeks i$ {} COMP_WORDS av ordet som inneholder gjeldende markørposisjon. Denne variabelen er bare tilgjengelig i skallfunksjoner som påberopes av programmerbare ferdigstillingsfasiliteter. COMP_LINE: Den nåværende kommandolinjen. Denne variabelen er bare tilgjengelig i skallfunksjoner og eksterne kommandoer påberegnet av programmerbare ferdigstillingsfasiliteter. COMP_POINT: Indeksen for gjeldende markørposisjon i forhold til begynnelsen av gjeldende kommando. Hvis den nåværende markørposisjonen er på slutten av den nåværende kommandoen, er verdien av denne variabelen lik$ {# COMP_LINE}. Denne variabelen er bare tilgjengelig i skallfunksjoner og eksterne kommandoer påberegnet av programmerbare ferdigstillingsfasiliteter. COMP_WORDS: En array-variabel som består av de enkelte ordene i den nåværende kommandolinjen. Denne variabelen er bare tilgjengelig i skallfunksjoner som påberopes av programmerbare ferdigstillingsfasiliteter. DIRSTACK: En array-variabel som inneholder det nåværende innholdet i katalogstakken. Kataloger vises i stakken i den rekkefølgen de vises avkataloger innebygd. Tilordne til medlemmer av denne arrayvariabelen kan brukes til å modifisere kataloger som allerede er i stakken, menpushd ogpopd builtins må brukes til å legge til og fjerne kataloger. Oppdrag til denne variabelen endrer ikke gjeldende katalog. HvisDIRSTACK er avstengt, mister den spesielle egenskaper, selv om den senere resettes. EUID: Utvider til den effektive bruker-IDen til den nåværende brukeren, initialisert ved oppstart av skallet. Denne variabelen er readonly. FUNCNAME: Navnet på en hvilken som helst gjeldende shell-funksjon. Denne variabelen eksisterer bare når en skallfunksjon utføres. Oppdrag tilFUNCNAME har ingen effekt og returnerer en feilstatus. HvisFUNCNAME er avstengt, mister den spesielle egenskaper, selv om den senere resettes. GRUPPER: En array-variabel som inneholder listen over grupper som den nåværende brukeren er medlem av. Oppdrag tilGRUPPER har ingen effekt og returnerer en feilstatus. HvisGRUPPER er avstengt, mister den spesielle egenskaper, selv om den senere resettes. HISTCMD: Historikknummeret eller indeksen i historikklisten for gjeldende kommando. HvisHISTCMD er avstengt, mister den spesielle egenskaper, selv om den senere resettes. HOSTNAME: Stilles automatisk til navnet på den gjeldende verten. HOSTTYPE: Stilles automatisk til en streng som unikt beskriver maskinens type på hvilkenbash utfører. Standard er systemavhengig. linjenr: Hver gang denne parameteren er referert, erstatter skallet et desimalnummer som representerer det nåværende sekvensielle linjenummeret (begynner med 1) i et skript eller en funksjon. Når ikke i et skript eller en funksjon, er det ikke garantert at verdien er substituert. Hvislinjenr er avstengt, mister den spesielle egenskaper, selv om den senere resettes. MACHTYPE: Stilles automatisk til en streng som beskriver systemtypen på hvilken måtebash kjøres i standard GNU cpu-selskap-system format. Standard er systemavhengig. OLDPWD: Den forrige arbeidskatalogen som angitt avcd kommando. OPTARG: Verdien av det siste alternativargumentet behandlet avgetopts innebygd kommando. OPTIND: Indeksen for neste argument som skal behandles avgetopts innebygd kommando. ostype: Sett automatisk til en streng som beskriver operativsystemet sombash utfører. Standard er systemavhengig. PIPESTATUS: En array-variabel som inneholder en liste over utgangsstatusverdier fra prosessene i den mest nylig utførte forgrunnsrøret, som kan inneholde bare en enkelt kommando. PPID: Prosess ID for skallets foreldre. Denne variabelen er readonly. PWD: Den nåværende arbeidskatalogen som angitt avcd kommando. TILFELDIG: Hver gang denne parameteren refereres, genereres et tilfeldig tall mellom 0 og 32767. Sekvensen av tilfeldige tall kan initialiseres ved å tildele en verdi til TILFELDIG. HvisTILFELDIG er avstengt, mister den spesielle egenskaper, selv om den senere resettes. SVARE: Angi til linjen av inngang som leses avlese builtin kommando når ingen argumenter leveres. SEKUNDER: Hver gang denne parameteren er referert, blir antallet sekunder siden shell-påkallingen returnert. Hvis en verdi er tilordnet tilSEKUNDER, verdien som returneres på etterfølgende referanser, er antall sekunder siden tildelingen pluss verdien tilordnet. Hvis SEKUNDER er avstengt, mister den spesielle egenskaper, selv om den senere resettes. SHELLOPTS: En kolon-separert liste over aktiverte skalalternativer. Hvert ord i listen er et gyldig argument for-o alternativ tilsett innebygd kommando. Alternativene som vises iSHELLOPTS er de rapportert som på avsett -o. Hvis denne variabelen er i miljøet nårbash starter opp, vil hvert skallalternativ i listen aktiveres før du leser noen oppstartsfiler. Denne variabelen er readonly. SHLVL: Incremented av en hver gang en forekomst avbash er startet. UID: Utvider til brukerens ID for den nåværende brukeren, initialisert ved oppstart av skallet. Denne variabelen er readonly. Følgende variabler brukes av skallet. I noen tilfeller,bash tilordner en standardverdi til en variabel disse tilfellene er notert. BASH_ENV: Hvis denne parameteren er satt nårbash Utfører et shell-skript, dets verdi tolkes som et filnavn som inneholder kommandoer for å initialisere skallet, som i ~ / .Bashrc . Verdien av BASH_ENV blir utsatt for parameterutvidelse, kommandosubstitusjon og aritmetisk utvidelse før den tolkes som et filnavn.STI er ikke vant til å søke etter det resulterende filnavnet. CDPATH: Søkebanen forcd kommando. Dette er en kolon-separert liste over kataloger der skallet ser etter destinasjonsmapper angitt avcd kommando. En prøveverdi er ".: ~: / Usr". COLUMNS: Brukes avå velge innebygd kommando for å bestemme terminalbredden når du velger utskriftslister. Stilles automatisk ved mottak av en SIGWINCH. COMPREPLY: En array variabel hvoravbash leser de mulige fullføringene som genereres av en skallfunksjon som påberopes av den programmerbare ferdigstillingsfasiliteten. FCEDIT: Standardredigeringsprogrammet forfc innebygd kommando. FIGNORE: En kolonskilt liste over suffiks som skal ignoreres når du fullfører filnavn. Et filnavn hvis suffiks samsvarer med en av postene iFIGNORE er utelatt fra listen over samsvarende filnavn. En prøveverdi er ".o: ~". GLOBIGNORE: En kolon-separert liste over mønstre som definerer settet av filnavn som skal ignoreres ved utvidelse av stinavn. Hvis et filnavn som samsvarer med et utvidelsesmønster for stienavn, samsvarer også med et av mønstrene iGLOBIGNORE, den er fjernet fra listen over kamper. HISTCONTROL: Hvis satt til en verdi på ignorespace , linjer som begynner med arom tegn er ikke oppgitt på historikklisten. Hvis satt til en verdi på ignoredups , linjer som samsvarer med den siste historikklinjen, blir ikke angitt. En verdi på ignoreboth kombinerer de to alternativene. Hvis unset eller hvis satt til annen verdi enn de ovenfor, lagres alle linjer som leses av parseren på historikklisten, underlagt verdien avHISTIGNORE. Denne variabelen er erstattet av HISTIGNORE. Den andre og påfølgende linjer i en kommandolinje med flere linjer blir ikke testet, og legges til historikken uavhengig av verdien avHISTCONTROL. HISTFILE: Navnet på filen der kommandoboken er lagret. Standardverdien er ~ / .Bash_history . Hvis deaktivert, lagres kommandologgen ikke når et interaktivt skall utgår. HISTFILESIZE: Maksimalt antall linjer i historikkfilen. Når denne variabelen er tilordnet en verdi, blir historikkfilen avkortet, om nødvendig, for å inneholde ikke mer enn det antall linjer. Standardverdien er 500. Historikkfilen blir også avkortet til denne størrelsen etter at den er skrevet når et interaktivt skall forlater. HISTIGNORE: En kolonskilt liste over mønstre som brukes til å bestemme hvilke kommandolinjer som skal lagres på historikklisten. Hvert mønster er forankret i begynnelsen av linjen og må samsvare med hele linjen (ingen implisitt '*'er vedlagt). Hvert mønster testes mot linjen etter kontrollene angitt avHISTCONTROL brukes. I tillegg til de vanlige skalmønstervennlige tegnene, '&'samsvarer med forrige historikklinje. '&"kan bli rømt ved hjelp av et tilbakeslag; Bakslaget fjernes før du prøver å få en kamp. Den andre og påfølgende linjer i en kommandolinje med flere linjer blir ikke testet og legges til historikken uavhengig av verdien avHISTIGNORE. HISTSIZE: Antall kommandoer som skal huskes i kommandologgen. Standardverdien er 500. HJEM: Hjemmekatalogen til den nåværende brukeren; standard argument forcd innebygd kommando. Verdien av denne variabelen brukes også når du utfører tilde-utvidelse. HOSTFILE: Inneholder navnet på en fil i samme format som / etc / hosts Det bør leses når skallet må fullføre et vertsnavn. Listen over mulige vertsnavnutførelser kan endres mens skallet kjører; neste gang vertsnavn fullføring er forsøkt etter at verdien er endret,bash legger til innholdet i den nye filen til den eksisterende listen. Hvis HOSTFILE er satt, men har ingen verdi,bash forsøker å lese / etc / hosts for å hente listen over mulige vertsnavn kompletteringer. NårHOSTFILE er slått av, blir vertsnavnlisten slettet. IFS: Den Internfelt separator brukes til orddeling etter utvidelse og for å dele linjer i ord medlese innebygd kommando. Standardverdien er " IGNOREEOF: Kontrollerer virkningen av et interaktivt skall ved mottak av enEOF tegn som eneste inngang. Hvis satt, er verdien antall sammenhengendeEOF tegn som må skrives som de første tegnene på en inntastingslinje førbash utganger. Hvis variabelen eksisterer, men ikke har en numerisk verdi eller har ingen verdi, er standardverdien 10. Hvis den ikke eksisterer,EOF betyr slutten av inngangen til skallet. INPUTRC: Filnavnet forreadline oppstartsfil, overstyrer standard for ~ / Inputrc . LANG: Brukes til å bestemme lokalkategorien for en kategori som ikke er spesifikt valgt med en variabel som begynner medLC_. LC_ALL: Denne variabelen overstyrer verdien avLANG og noen andreLC_ variabel som spesifiserer en lokal kategori. LC_COLLATE: Denne variabelen bestemmer sorteringsrekkefølgen som brukes når du sorterer resultatene av stedsnavnekspansjon og bestemmer oppførselen til rekkeviddeuttrykk, ekvivalensklasser og sorteringssekvenser innen utvidelse av stedsnavn og mønstermatching. LC_CTYPE: Denne variabelen bestemmer tolkningen av tegn og oppførselen til tegningsklasser innenfor utvidelse av stienavn og mønstermatching. LC_MESSAGES: Denne variabelen bestemmer localen som brukes til å oversette dobbeltkuttede strenge foran et a$. LC_NUMERIC: Denne variabelen bestemmer lokalkategorien som brukes til nummerformatering. LINES: Brukes avå velge builtin-kommando for å bestemme kolonnelengden for utskrift av utvalgslister. Stilles automatisk ved mottak av en SIGWINCH. POST: Hvis denne parameteren er satt til et filnavn ogMAILPATH variabel er ikke satt,bashinformerer brukeren om ankomsten av e-post i den angitte filen. Mailcheck: Angir hvor ofte (i sekunder)bash sjekker for post. Standardinnstillingen er 60 sekunder. Når det er på tide å sjekke om e-post, gjør skallet det før det vises hovedprompten. Hvis denne variabelen er avbrudd eller satt til en verdi som ikke er et tall som er større enn eller lik null, deaktiverer skjalet e-postkontroll. MAILPATH: En kolon-separert liste over filnavn som skal kontrolleres for e-post. Meldingen som skal skrives ut når posten kommer inn i en bestemt fil, kan spesifiseres ved å skille filnavnet fra meldingen med en '?'. Når det brukes i teksten til meldingen,$_ utvides til navnet på den nåværende postfilen. Eksempel: MAILPATH = '/ var / mail / bfox? "Du har e-post": ~ / shell-mail? "$ _ Har post!"'
bash leverer en standardverdi for denne variabelen, men plasseringen av brukerpostfiler som den bruker, er systemavhengig (/ var / mail /$ USER). OPTERR: Hvis satt til verdien 1,bash viser feilmeldinger generert avgetopts innebygd kommando.OPTERR initialiseres til 1 hver gang skallet påberopes eller et skallskript utføres. STI: Søkeveien for kommandoer. Det er en kolon-separert liste over kataloger der skallet ser etter kommandoer. Standardbanen er systemavhengig og angis av administratoren som installererbash. En felles verdi er "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''. POSIXLY_CORRECT: Hvis denne variabelen er i miljøet nårbash starter, skallet kommer inn posisjonsmodus før du leser oppstartsfilene, som om--posix innkallingsalternativet hadde blitt levert. Hvis den er satt mens skallet løper,bash muliggjør posisjonsmodus som om kommandoen sett -i posix hadde blitt henrettet. PROMPT_COMMAND: Hvis satt, blir verdien utført som en kommando før du utsteder hver primærprompt. PS1: Verdien av denne parameteren er utvidet og brukes som den primære hurtigstrengen. Standardverdien er " S- v $''. PS2: Verdien av denne parameteren er utvidet som medPS1 og brukes som den sekundære hurtigstrengen. Standard er "> ''. PS3: Verdien av denne parameteren brukes som spørsmål forå velge kommando. PS4: Verdien av denne parameteren er utvidet som medPS1, og verdien skrives ut før hver kommandobash vises under et kjøringsspor. Den første tegnet avPS4 gjentas flere ganger, etter behov, for å indikere flere nivåer av indireksjon. Standard er "+ ''. TIDSFORMAT: Verdien av denne parameteren brukes som en formatstreng som angir hvordan tidsinformasjonen for rørledninger prefiks medtid Reservert ord skal vises. De % tegn introduserer en fluktsekvens som utvides til en tidsverdi eller annen informasjon. Romsekvensene og deres betydning er som følger. Bøylene angir valgfrie deler. Den valgfrie p er et siffer som spesifiserer presisjon , antall brøkdelte sifre etter et desimaltegn. En verdi på 0 gir ingen desimaltegn eller brøkdel som skal sendes ut. Maksimalt tre steder etter desimalpunktet kan spesifiseres; verdier av p større enn 3 blir endret til 3. Hvis p er ikke spesifisert, brukes verdien 3. Den valgfriel angir et lengre format, inkludert minutter, av skjemaet MM m SS . FF s. Verdien av p avgjør om fraksjonen er inkludert. Hvis denne variabelen ikke er satt,bash fungerer som om den hadde verdien $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Hvis verdien er null, vises ingen timinginformasjon. En etterfølgende ny linje legges til når formatstrengen vises. TMOUT: Hvis satt til en verdi som er større enn null,TMOUT blir behandlet som standard timeout forlese innebygd. Deå velge kommandoen avsluttes dersom inngang ikke kommer etterpåTMOUT sekunder når inngang kommer fra en terminal.I et interaktivt skall tolkes verdien som antall sekunder for å vente på inngang etter utstedelse av primærprompten.bash avslutter etter å ha venter på det antall sekunder hvis inngang ikke kommer. auto_resume: Denne variabelen styrer hvordan skallet samhandler med brukeren og jobbkontrollen. Hvis denne variabelen er angitt, behandles enkeltord enkle kommandoer uten viderekoblinger som kandidater for gjenopptakelse av en eksisterende stoppet jobb. Det er ingen tvetydighet tillatt. Hvis det er mer enn en jobb som begynner med strengen som er skrevet, blir den sist brukte jobben valgt. De Navn av en stoppet jobb, i denne sammenheng er kommandolinjen brukt til å starte den. Hvis satt til verdien nøyaktig , må strengen som følger med, stemme nøyaktig med navnet på en stoppet jobb hvis satt til delstreng , må strengen som følger med, matche en substring av navnet på en stoppet jobb. De delstreng verdi gir funksjonalitet analog med%? jobbidentifikator. Hvis den er satt til en annen verdi, må den medfølgende strengen være et prefiks av navnet på en stoppet jobb. Dette gir funksjonalitet som er analog med% jobbidentifikator. histchars: De to eller tre tegnene som styrer historisk utvidelse og tokenisering. Det første tegnet er historieutvidelse tegn, tegnet som signalerer starten på en historisk utvidelse, normalt '!'. Det andre tegnet er rask substitusjon tegn, som brukes som stenografi for å gjenopprette den forrige kommandoen som er angitt, og erstatter en streng for en annen i kommandoen. Standard er '^'. Valgfritt tredje tegn er tegnet som indikerer at resten av linjen er en kommentar når den er funnet som det første tegnet av et ord, normalt '#'. Historikk kommentar karakteren forårsaker historisk substitusjon å bli hoppet over for de gjenværende ordene på linjen. Det forårsaker ikke nødvendigvis at skallparseren behandler resten av linjen som en kommentar. bash gir endimensjonal array variabler. Enhver variabel kan brukes som en matrise; de erklære builtin vil eksplisitt deklarere en matrise. Det er ingen maksimumsgrense på størrelsen på en matrise eller noe krav om at medlemmene blir indeksert eller tilordnet sammenhengende. Arrayer er indeksert ved hjelp av heltall og er nullbaserte. Et array opprettes automatisk hvis noen variabel er tilordnet å bruke syntaksen Navn senket = verdi . De senket blir behandlet som et aritmetisk uttrykk som må vurderes til et tall som er større enn eller lik null. For å eksplisitt erklære en matrise, brukerklære -a Navn . erklære -a Navn senket er også akseptert; de senket blir ignorert. Attributter kan angis for en arrayvariabel ved hjelp averklære og skrivebeskyttet builtins. Hver attributt gjelder for alle medlemmer av en gruppe. Arrays er tildelt til å bruke sammensatte oppgaver av skjemaet Navn =(verdi 1 … verdi n ), hvor hver verdi er av skjemaet senket = string . Bare string er nødvendig. Hvis valgfrie parenteser og abonnement blir levert, er denne indeksen tilordnet; ellers er indeksen til elementet tilordnet den siste indeksen tilordnet av setningen pluss en. Indekseringen starter ved null. Denne syntaksen aksepteres også averklære innebygd. Individuelle arrayelementer kan tilordnes å bruke Navn senket = verdi syntaks. Ethvert element i et array kan refereres til ved hjelp av $ { Navn senket }. Braces er nødvendig for å unngå konflikter med utvidelse av stienavnet. Hvis senket er@ eller*, ordet utvides til alle medlemmer av Navn . Disse abonnementene er bare forskjellig når ordet vises i to sitater. Hvis ordet er dobbeltnotert, $ { Navn *} utvides til et enkelt ord med verdien av hvert arraymedlem adskilt av den første tegnet avIFS spesiell variabel og $ { Navn @} utvider hvert element av Navn til et eget ord. Når det ikke finnes noen array medlemmer, $ { Navn @} utvides til ingenting. Dette er analog med utvidelsen av de spesielle parametrene* og@. ${# Navn senket } utvides til lengden på $ { Navn senket }. Hvis senket er* eller@, utvidelsen er antall elementer i arrayet. Henvisning av en array-variabel uten et abonnement er lik referanseelementet null. Deunset builtin brukes til å ødelegge arrays.unset Navn senket ødelegger arrayelementet på indeksen senket . unset Navn , hvor Navn er en matrise, ellerunset Navn senket , hvor senket er* eller@, fjerner hele gruppen. Deerklære, lokal, ogskrivebeskyttet builtins hver aksepterer a-en alternativ for å angi en matrise. Delese builtin aksepterer a-en alternativ til å tilordne en liste med ord som leses fra standardinngangen til en matrise. Desett ogerklære bygger opp displayverdier på en måte som gjør at de kan gjenbrukes som oppgaver. Utvidelse utføres på kommandolinjen etter at den er delt inn i ord. Det er syv typer ekspansjon utført: brace utvidelse, tilde utvidelse, parameter og variabel utvidelse, kommandosubstitusjon, aritmetisk utvidelse, orddeling og utvidelse av stienavn. Ordningen med utvidelser er: spenneutvidelse, tilde-utvidelse, parameter- og variabel utvidelse, aritmetisk utvidelse og kommandosubstitusjon (gjort i venstre til høyre), orddeling og utvidelse av stienavn. På systemer som kan støtte det, er det en ekstra utvidelse tilgjengelig: prosess substitusjon . Kun sperreutvidelse, orddeling og utvidelse av stienavn kan endre antall ord i utvidelsen; andre utvidelser utvide et enkelt ord til et enkelt ord. De eneste unntakene til dette er utvidelsen av "$@"og"${ Navn @}'. Brace utvidelse er en mekanisme ved hvilken vilkårlig strenger kan genereres. Denne mekanismen ligner på utvidelse av stienavn , men de genererte filnavnene behøver ikke eksistere. Mønstre som skal utbygges, skal være i form av en valgfri innledning , etterfulgt av en rekke kommaseparerte strenger mellom et par bøyler, etterfulgt av en valgfri postscript . Innledningen er prefixed til hver streng som er inneholdt i bøylene, og postscriptet legges deretter til hver resulterende streng, og utvider venstre til høyre. Brace utvidelser kan være nestet. Resultatene av hver utvidet streng er ikke sortert; venstre til høyre rekkefølge er bevart. For eksempel a{d, c, b}e utvider seg til "ade ace abe". Brace-ekspansjonen utføres før andre utvidelser, og eventuelle tegn som er spesielle for andre utvidelser, blir bevart i resultatet. Det er strengt tekstlig.bash Bruker ingen syntaktisk tolkning i sammenheng med utvidelsen eller teksten mellom bøylene. En korrekt formet brace-ekspansjon må inneholde unoterte åpnings- og lukkebøyler og minst ett ikke-merket komma. En hvilken som helst feilformet brace-utvidelse er uendret. EN{ eller, kan siteres med tilbakeslag for å hindre at det blir vurdert som en del av et brace-uttrykk. For å unngå konflikter med parameterutvidelse, strengen${ anses ikke som kvalifisert for spenneutvidelse. Denne konstruksjonen brukes vanligvis som stenografi når det felles prefikset for strenger som skal genereres, er lengre enn i eksempelet ovenfor: mkdir / usr / local / src / bash / {old, new, dist, bugs} eller chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}} Brace-ekspansjon introduserer en liten inkompatibilitet med historiske versjoner avsh, som ikke behandler åpnin
definisjoner
Reserverte ord
Shell Grammatikk: Simple Commands
rørledninger
lister
Sammensatte kommandoer
kommentarer
siterer
parametere
Posisjonelle parametere
Spesielle parametere
Shell Variabler
arrays
Ekspansjon
Brace Utvidelse