'\" t .\" Title: getopt .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-05-18 .\" Manual: Användarkommandon .\" Source: util-linux 2.42.1 .\" Language: English .\" .TH "GETOPT" "1" "2026-05-18" "util\-linux 2.42.1" "Användarkommandon" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NAMN" getopt \- tolka kommandoval (förbättrad) .SH "SYNOPSIS" .sp \fBgetopt\fP \fIoptstring\fP \fIparametrar\fP .sp \fBgetopt\fP [flaggor] [\fB\-\-\fP] \fIoptstring\fP \fIparameters\fP .sp \fBgetopt\fP [flaggor] \fB\-o\fP|\fB\-\-options\fP \fIoptstring\fP [flaggor] [\fB\-\-\fP] \fIparameters\fP .SH "BESKRIVNING" .sp \fBgetopt\fP används för att dela upp (\fIparsa\fP) flaggor i kommandorader så att de enkelt kan analyseras av skalprocedurer och för att kontrollera om flaggor är giltiga. För detta ändamål används GNU \fBgetopt\fP(3)\-rutinerna. .sp De parametrar som \fBgetopt\fP anropas med kan delas in i två delar: flaggor som ändrar hur \fBgetopt\fP ska utföra tolkningen (\fIoptions\fP och \fIoptstring\fP i \fBSYNOPSIS\fP) och de parametrar som ska tolkas (\fIparameters\fP i \fBSYNOPSIS\fP). Den andra delen börjar vid den första parametern som inte är en flagga och som inte är ett flaggargument, eller efter den första förekomsten av \*(Aq\fB\-\-\fP\*(Aq. Om ingen \*(Aq\fB\-o\fP\*(Aq eller \*(Aq\fB\-\-options\fP\*(Aq\-flagga hittas i den första delen, används den första parametern i den andra delen som den korta flaggsträngen. .sp Om miljövariabeln \fBGETOPT_COMPATIBLE\fP är inställd, eller om den första \fIparametern\fP inte är en flagga (börjar inte med \*(Aq\fB\-\fP\*(Aq, det första formatet i \fBSYNOPSIS\fP), kommer \fBgetopt\fP att generera utdata som är kompatibla med utdata från andra versioner av \fBgetopt\fP(1). Den kommer fortfarande att blanda parametrar och känna igen valfria argument (se avsnittet \fBKOMPATIBILITET\fP för mer information). .sp Traditionella implementationer av \fBgetopt\fP(1) klarar inte av att hantera blanksteg och andra (shell\-specifika) specialtecken i argument och parametrar som inte är optioner. För att lösa detta problem kan denna implementation generera citerad utdata som återigen måste tolkas av skalet (vanligtvis med kommandot \fBeval\fP). Detta innebär att dessa tecken bevaras, men du måste anropa \fBgetopt\fP på ett sätt som inte längre är kompatibelt med andra versioner (det andra eller tredje formatet i \fBSYNOPSIS\fP). För att avgöra om denna förbättrade version av \fBgetopt\fP(1) är installerad, kan en speciell testflagga (\fB\-T\fP) användas. .SH "FLAGGOR" .sp \fB\-a\fP, \fB\-\-alternative\fP .RS 4 Tillåt att långa flaggor börjar med ett enda \*(Aq\fB\-\fP\*(Aq. .RE .sp \fB\-l\fP, \fB\-\-longoptions\fP \fIlongopts\fP .RS 4 The long (multi\-character) options to be recognized. More than one option name may be specified at once, by separating the names with commas, whitespace (spaces, tabs, or newlines). This option may be given more than once, the \fIlongopts\fP are cumulative. Each long option name in \fIlongopts\fP may be followed by one colon to indicate it has a required argument, and by two colons to indicate it has an optional argument. .RE .sp \fB\-n\fP, \fB\-\-name\fP \fIprogname\fP .RS 4 Det namn som kommer att användas av \fBgetopt\fP(3)\-rutinerna när de rapporterar fel. Observera att fel i \fBgetopt\fP(1) fortfarande rapporteras som att de kommer från getopt. .RE .sp \fB\-o\fP, \fB\-\-options\fP \fIshortopts\fP .RS 4 De korta (ett tecken långa) flaggor som ska identifieras. Om denna flagga inte hittas, används den första parametern i \fBgetopt\fP som inte börjar med \*(Aq\fB\-\fP\*(Aq (och som inte är ett flaggargument) som sträng för korta flaggor. Varje kort flaggtecken i \fIshortopts\fP kan följas av ett kolon för att ange att det har ett obligatoriskt argument, och av två kolon för att ange att det har ett valfritt argument. Det första tecknet i shortopts kan vara \*(Aq\fB+\fP\*(Aq eller \*(Aq\fB\-\fP\*(Aq för att påverka hur flaggorna analyseras och utdata genereras (se avsnittet \fBSCANNINGSMODER\fP för mer information). .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 Inaktivera felrapportering från \fBgetopt\fP(3). .RE .sp \fB\-Q\fP, \fB\-\-quiet\-output\fP .RS 4 Genererar inte normal utdata. Fel rapporteras fortfarande av \fBgetopt\fP(3), såvida du inte också använder \fB\-q\fP. .RE .sp \fB\-s\fP, \fB\-\-shell\fP \fIskal\fP .RS 4 Ställ in citatkonventionerna till de som används i \fIskal\fP. Om flaggan \fB\-s\fP inte anges används \fBBASH\fP\-konventionerna. Giltiga argument är för närvarande \*(Aq\fBsh\fP\*(Aq, \*(Aq\fBbash\fP\*(Aq, \*(Aq\fBcsh\fP\*(Aq och \*(Aq\fBtcsh\fP\*(Aq. .RE .sp \fB\-T\fP, \fB\-\-test\fP .RS 4 Testa om din \fBgetopt\fP(1) är denna förbättrade version eller en gammal version. Detta genererar ingen utdata och sätter felstatusen till 4. Andra implementationer av \fBgetopt\fP(1), och den här versionen om miljövariabeln \fBGETOPT_COMPATIBLE\fP är inställd, returnerar \*(Aq\fB\-\-\fP\*(Aq och felstatus 0. .RE .sp \fB\-u\fP, \fB\-\-unquoted\fP .RS 4 Citera inte utdata. Observera att blanksteg och specialtecken (beroende på skalet) kan orsaka problem i det här läget (precis som i andra \fBgetopt\fP(1)\-implementeringar). .RE .sp \fB\-U\fP, \fB\-\-unknown\fP .RS 4 Leave unknown options as they are and suppress error messages from \fBgetopt\fP(3). Since there is no way to know whether an unknown option requires an argument, a non\-option argument that follows the unknown option after a whitespace, is considered an option argument, therefore the argument will be left untouched and printed next to the respective unknown option. To prevent unexpected behavior, short options should be specified individually. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Visa hjälptext och avsluta. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Visa version och avsluta. .RE .SH "PARSING" .sp I detta avsnitt anges formatet för den andra delen av parametrarna i \fBgetopt\fP (\fIparametrarna\fP i \fBSYNOPSIS\fP). I nästa avsnitt (\fBOUTPUT\fP) beskrivs den utdata som genereras. Dessa parametrar var typiskt de parametrar som en skalfunktion anropades med. Man måste vara noga med att varje parameter som skalfunktionen anropades med motsvarar exakt en parameter i parameterlistan för \fBgetopt\fP (se \fBEXEMPLES\fP). All parsning görs av GNU:s \fBgetopt\fP(3)\-rutiner. .sp Parametrarna analyseras från vänster till höger. Varje parameter klassificeras som en kort flagga, en lång flagga, ett argument till en flagga eller en parameter som inte är en flagga. .sp En enkel kort flagga är ett \*(Aq\fB\-\fP\*(Aq följt av ett kort flaggtecken, med undantag för tecknen \*(Aq:\*(Aq, \*(Aq;\*(Aq och \*(Aq?\*(Aq, eftersom dessa reserveras av \fBgetopt\fP(3). Om flaggan har ett obligatoriskt argument kan det skrivas direkt efter flaggtecknet eller som nästa parameter (d.v.s. separerat med blanksteg på kommandoraden). Om flaggan har ett valfritt argument måste det skrivas direkt efter flaggtecknet om det finns. .sp Det är möjligt att ange flera korta flaggor efter ett "\fB\-\fP", så länge som alla (utom möjligen det sista) inte har obligatoriska eller valfria argument. .sp En lång flagga inleds normalt med "\fB\-\-\fP" följt av det långa flaggnamnet. Om flaggan har ett obligatoriskt argument kan det skrivas direkt efter det långa flaggnamnet, avgränsat med \*(Aq\fB=\fP\*(Aq, eller som nästa argument (dvs. avgränsat med blanksteg på kommandoraden). Om flaggan har ett valfritt argument måste det skrivas direkt efter det långa flaggnamnet, separerat med \*(Aq\fB=\fP\*(Aq, om det finns (om du lägger till \*(Aq\fB=\fP\*(Aq men inget efter det tolkas det som om inget argument fanns; detta är ett litet fel, se \fBKÄNDA PROBLEM\fP). Långa flaggor kan förkortas, så länge förkortningen inte är tvetydig. .sp Varje parameter som inte börjar med "\fB\-\fP" och som inte är ett obligatoriskt argument för en tidigare flagga är en icke\-flaggparameter. Varje parameter efter en \*(Aq\fB\-\-\fP\*(Aq\-parameter tolkas alltid som en icke\-flaggparameter. Om miljövariabeln \fBPOSIXLY_CORRECT\fP är inställd, eller om den korta flaggsträngen började med \*(Aq\fB+\fP\*(Aq, tolkas alla återstående parametrar som icke\-flagga så snart den första icke\-flaggparametern hittas. .SH "UTFLÖDE" .sp Utdata genereras för varje element som beskrivs i föregående avsnitt. Utmatningen sker i samma ordning som elementen specificeras i indata, med undantag för parametrar som inte är flaggor. Utmatningen kan göras i \fIkompatibelt\fP (\fIicke\-citerat\fP) läge, eller på ett sådant sätt att blanksteg och andra specialtecken i argument och icke\-optionsparametrar bevaras (se \fBCITERING\fP). När utdata bearbetas i skalskriptet kommer det att se ut som om det består av distinkta element som kan bearbetas ett efter ett (genom att använda kommandot shift i de flesta skalspråk). Detta är inte perfekt i okommenterat läge, eftersom element kan delas upp på oväntade ställen om de innehåller blanksteg eller specialtecken. .sp Om det uppstår problem med att analysera parametrarna, t.ex. för att ett obligatoriskt argument inte hittas eller en flagga inte känns igen, rapporteras ett fel på stderr, ingen utdata för det felaktiga elementet och en felstatus som inte är noll returneras. .sp För en kort flagga genereras ett enda \*(Aq\fB\-\fP\*(Aq och flaggtecknet som en parameter. Om flaggan har ett argument, kommer nästa parameter att vara argumentet. Om flaggan tar ett valfritt argument, men inget hittades, kommer nästa parameter att genereras men vara tom i citerande läge, men ingen andra parameter kommer att genereras i okvoterat (kompatibelt) läge. Observera att många andra \fBgetopt\fP(1)\-implementeringar inte stöder valfria argument. .sp Om flera korta flaggor anges efter ett enda "\fB\-\fP", kommer varje flagga att visas som en separat parameter i utdata. .sp För en lång flagga genereras "\fB\-\-\fP" och det fullständiga namnet på flaggan som en parameter. Detta görs oavsett om flaggan förkortades eller angavs med ett enda \*(Aq\fB\-\fP\*(Aq i indata. Argumenten hanteras på samma sätt som för korta flaggor. .sp Normalt genereras ingen utdata för parametrar som inte är flaggor förrän alla flaggor och deras argument har genererats. Då genereras "\fB\-\-\fP" som en enda parameter och därefter parametrarna för icke\-flaggor i den ordning de hittades, var och en som en separat parameter. Endast om det första tecknet i den korta optionssträngen var ett \*(Aq\fB\-\fP\*(Aq genereras utdata för icke\-optionsparametrar på den plats där de finns i indata (detta stöds inte om det första formatet för \fBSYNOPSIS\fP används; i så fall ignoreras alla föregående förekomster av \*(Aq\fB\-\fP\*(Aq och \*(Aq\fB+\fP\*(Aq). .SH "CITAT" .sp I kompatibilitetsläget hanteras inte blanksteg eller "specialtecken" i argument eller parametrar som inte är flaggor korrekt. När utdata matas in i skalskriptet vet inte skriptet hur det ska dela upp utdata i separata parametrar. För att kringgå detta problem erbjuder denna implementation quoting. Tanken är att utdata genereras med citattecken runt varje parameter. När denna utdata återigen matas till skalet (vanligtvis med ett \fBeval\fP\-kommando) delas den upp korrekt i separata parametrar. .sp Quoting aktiveras inte om miljövariabeln \fBGETOPT_COMPATIBLE\fP är inställd, om den första formen av \fBSYNOPSIS\fP används eller om flaggan "\fB\-u\fP" hittas. .sp Olika skal använder olika citeringskonventioner. Du kan använda flaggan "\fB\-s\fP" för att välja det skal du använder. Följande skal stöds för närvarande: \*(Aq\fBsh\fP\*(Aq, \*(Aq\fBbash\fP\*(Aq, \*(Aq\fBcsh\fP\*(Aq och \*(Aq\fBtcsh\fP\*(Aq. Egentligen skiljer man bara på två "smaker": sh\-liknande citeringskonventioner och csh\-liknande citeringskonventioner. Om du använder ett annat skalskriptspråk är chansen stor att du ändå kan använda någon av dessa varianter. .SH "SKANNINGSMODELLER" .sp Det första tecknet i den korta optionssträngen kan vara ett \*(Aq\fB\-\fP\*(Aq eller ett \*(Aq\fB+\fP\*(Aq för att ange ett speciellt skanningsläge. Om den första anropsformen i \fBSYNOPSIS\fP används ignoreras de; miljövariabeln \fBPOSIXLY_CORRECT\fP undersöks dock fortfarande. .sp Om det första tecknet är \*(Aq\fB+\fP\*(Aq, eller om miljövariabeln \fBPOSIXLY_CORRECT\fP är inställd, stoppas parsningen så snart den första icke\-flaggparametern (dvs. en parameter som inte börjar med \*(Aq\fB\-\fP\*(Aq) hittas som inte är ett flaggargument. De återstående parametrarna tolkas alla som icke\-flaggparametrar. .sp Om det första tecknet är en "\fB\-\fP", matas parametrar som inte är flaggor ut på den plats där de finns; i normal drift samlas de alla i slutet av utmatningen efter att en "\fB\-\-\fP"\-parameter har genererats. Observera att denna "\fB\-\-\fP"\-parameter fortfarande genereras, men den kommer alltid att vara den sista parametern i detta läge. .SH "KOMPATIBILITET" .sp Den här versionen av \fBgetopt\fP(1) är skriven för att vara så kompatibel som möjligt med andra versioner. Vanligtvis kan du bara ersätta dem med den här versionen utan några ändringar, och med vissa fördelar. .sp Om det första tecknet i den första parametern i getopt inte är ett \*(Aq\fB\-\fP\*(Aq, går \fBgetopt\fP in i kompatibilitetsläge. Den tolkar sin första parameter som en sträng med korta flaggor och alla andra argument analyseras. Det kommer fortfarande att blanda parametrar (dvs. alla parametrar som inte är flaggor kommer att matas ut i slutet), såvida inte miljövariabeln \fBPOSIXLY_CORRECT\fP är inställd, i vilket fall \fBgetopt\fP automatiskt lägger till ett \*(Aq\fB+\fP\*(Aq före korta flaggor. .sp Miljövariabeln \fBGETOPT_COMPATIBLE\fP tvingar \fBgetopt\fP till kompatibilitetsläge. Om du ställer in både denna miljövariabel och \fBPOSIXLY_CORRECT\fP får du 100% compatibilitet för "svåra" program. Vanligtvis behövs dock ingen av dem. .sp I kompatibilitetsläget ignoreras ledande \*(Aq\fB\-\fP\*(Aq och \*(Aq\fB+\fP\*(Aq\-tecken i den korta optionssträngen. .SH "RETURN\-KODER" .sp \fBgetopt\fP returnerar felkod \fB0\fP för lyckad parsning, \fB1\fP om \fBgetopt\fP(3) returnerar fel, \fB2\fP om den inte förstår sina egna parametrar, \fB3\fP om ett internt fel inträffar, t.ex. out\-of\-memory, och \fB4\fP om den anropas med \fB\-T\fP. .SH "EXEMPEL" .sp Exempelskript för (ba)sh och (t)csh tillhandahålls med \fBgetopt\fP(1)\-distributionen och installeras i katalogen \fI/usr/share/doc/util\-linux\fP. .SH "MILJÖ" .sp \fBPOSIXLY_CORRECT\fP .RS 4 Denna miljövariabel undersöks av rutinerna \fBgetopt\fP(3). Om den är inställd stoppas parsningen så snart en parameter hittas som inte är en flagga eller ett flaggargument. Alla återstående parametrar tolkas också som icke\-flaggparametrar, oavsett om de börjar med \*(Aq\fB\-\fP\*(Aq eller inte. .RE .sp \fBGETOPT_COMPATIBLE\fP .RS 4 Tvingar \fBgetopt\fP att använda det första anropsformatet enligt vad som anges i \fBSYNOPSIS\fP. .RE .SH "KÄNDA PROBLEM" .sp \fBgetopt\fP(3) kan analysera långa flaggor med valfria argument som ges ett tomt valfritt argument (men kan inte göra detta för korta flaggor). Denna \fBgetopt\fP(1) behandlar valfria argument som är tomma som om de inte fanns. .sp Syntaxen om du inte vill ha några short option\-variabler alls är inte särskilt intuitiv (du måste uttryckligen ställa in dem till den tomma strängen). .SH "FÖRFATTARE" .sp .MTO "frodo\(atfrodo.looijaard.name" "Frodo Looijaard" "" .SH "SE ÄVEN" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBgetopt\fP(3) .SH "FELRAPPORTERING" .sp För felrapporter, använd \c .URL "https://github.com/util\-linux/util\-linux/issues" "felhanteraren" "." .SH "TILLGÄNGLIGHET" .sp Kommandot \fBgetopt\fP ingår i paketet util\-linux som kan hämtas från \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."