getopts(1p): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== NAMN == getopts - tolka kommandoradsflaggor == SYNOPS == getopts ''optstrang variabel'' [argument...] == BESKRIVNING == Kommandot <code>getopts</code> tolkar flaggor och flaggargument enligt POSIX:s rekommenderade syntaxregler (riktlinjer 3 till 10 i avsnitt 12.2). Det uppdaterar skalvariablerna <code>OPTIND</code> (aktuellt argumentindex) och <code>OPTARG</code> (flaggar med argument). Resultatet av den tolkade flaggan returneras i användardefinierad variabel ''va...') |
Admin (diskussion | bidrag) |
||
(18 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
= getopts(1p) = | |||
== NAMN == | == NAMN == | ||
getopts | <pre> | ||
getopts — tolka flaggor till kommandoradsverktyg | |||
</pre> | |||
== | == SYNOPSIS == | ||
getopts | <pre> | ||
getopts optstr namn [argument ...] | |||
</pre> | |||
== BESKRIVNING == | == BESKRIVNING == | ||
Kommandot getopts läser in flaggor och flaggargument från en lista med parametrar. | |||
Det följer riktlinjerna 3 till 10 i POSIX.1‐2017, avsnitt 12.2, "Utility Syntax Guidelines". | |||
När | Vid varje anrop sparas nästa flagga i skalvariabeln som anges av operanden namn, | ||
och indexet för nästa argument i variabeln OPTIND. När skalet startas sätts OPTIND till 1. | |||
Om flaggan kräver ett argument, placeras detta i skalvariabeln OPTARG. | |||
Om ingen flagga hittas, eller om flaggan inte har ett argument, kommer OPTARG inte att vara satt. | |||
Om ett tecken som inte ingår i optsträng hittas där en flagga förväntas, sätts namn-variabeln till | |||
frågetecknet '?'. Om första tecknet i optsträng är kolon ':', sätts OPTARG till det funna tecknet, | |||
annars skrivs ett felmeddelande till standardfel och OPTARG avsätts. | |||
Om ett flaggargument saknas: | |||
* Om optsträng börjar med kolon (':'), sätts namn till kolon och OPTARG till den funna flaggan. | |||
* Annars sätts namn till frågetecken, OPTARG avsätts och ett felmeddelande skrivs till standardfel. | |||
När flaggorna är slut returnerar kommandot ett värde större än noll. OPTIND sätts till index | |||
för första operanden eller "$#" + 1 om inga operander finns. namn-variabeln sätts till frågetecken. | |||
Variablerna OPTIND och OPTARG påverkar det aktuella skalets miljö och exporteras inte som standard. | |||
Om OPTIND sätts till 1, kan nya argument användas. | |||
== FLAGGOR == | == FLAGGOR == | ||
<pre> | |||
Inga. | Inga. | ||
</pre> | |||
== OPERANDER == | == OPERANDER == | ||
'' | Följande operander stöds: | ||
optsträng | |||
En sträng som innehåller flaggtecken. Om ett tecken följs av kolon (:), | |||
krävs ett argument. Tecken som '?' och ':' ska inte användas. | |||
Tecken som inte är alfanumeriska kan ge oförutsägbara resultat. | |||
namn | |||
Namnet på en skalvariabel som sätts till den flagga som hittades. | |||
Om | Om argument anges till getopts kommer dessa att tolkas istället för skalets positionella parametrar. | ||
== STDIN == | == STDIN == | ||
Används | <pre> | ||
Används ej. | |||
</pre> | |||
== | == INDATAFILAR == | ||
Inga. | Inga. | ||
== MILJÖVARIABLER == | == MILJÖVARIABLER == | ||
< | <pre> | ||
Följande miljövariabler påverkar körningen: | |||
LANG Standardvärde för andra internationaliseringsvariabler. | |||
LC_ALL Överskrider alla andra locale-inställningar. | |||
LC_CTYPE Påverkar tolkning av text (t.ex. multibyte-tecken). | |||
LC_MESSAGES Format och innehåll i felmeddelanden. | |||
NLSPATH Plats för meddelandekataloger. | |||
OPTIND Används av getopts som index för nästa argument. | |||
</pre> | |||
== ASYNKRONA HÄNDELSER == | == ASYNKRONA HÄNDELSER == | ||
Standard. | |||
== STDOUT == | == STDOUT == | ||
Används | <pre> | ||
Används ej. | |||
</pre> | |||
== STDERR == | == STDERR == | ||
Om optsträng inte börjar med kolon (':') och ett fel upptäcks skrivs ett meddelande till standardfel med: | |||
== | * Programnamnet ($0) | ||
* Den okända flaggan eller saknade flaggargumentet | |||
== UTDATAFILAR == | |||
Inga. | Inga. | ||
== UTFÖRLIG BESKRIVNING == | == UTFÖRLIG BESKRIVNING == | ||
Ingen | Ingen. | ||
== | == RETURSTATUS == | ||
0 | 0 En flagga hittades (även om den är ogiltig). | ||
>0 Inga fler flaggor eller fel uppstod. | |||
== KONSEKVENSER VID FEL == | == KONSEKVENSER VID FEL == | ||
Standard. | <pre> | ||
Standard. | |||
Följande avsnitt är informativa. | |||
</pre> | |||
== ANVÄNDNING == | == ANVÄNDNING == | ||
Eftersom getopts påverkar det aktuella skalet är det vanligtvis inbyggt. | |||
Om det används i en subshell påverkas inte skalets variabler, t.ex.: | |||
(getopts abc värde "$@") | |||
nohup getopts ... | |||
find . -exec getopts ... \; | |||
Shell-funktioner delar OPTIND med det anropande skalet, | |||
vilket kan ge oförutsägbara resultat om båda använder getopts. | |||
== EXEMPEL == | == EXEMPEL == | ||
<pre> | <pre> | ||
Ett skript som tolkar flaggor: | |||
if [ - | aflag= | ||
bflag= | |||
fi | while getopts ab: namn | ||
if [ - | do | ||
case $namn in | |||
fi | a) aflag=1;; | ||
shift $((OPTIND - 1)) | b) bflag=1 | ||
bval="$OPTARG";; | |||
?) printf "Användning: %s: [-a] [-b värde] args\n" "$0" | |||
exit 2;; | |||
esac | |||
done | |||
if [ ! -z "$aflag" ]; then | |||
printf "Flagga -a angavs\n" | |||
fi | |||
if [ ! -z "$bflag" ]; then | |||
printf 'Flagga -b "%s" angavs\n' "$bval" | |||
fi | |||
shift $(($OPTIND - 1)) | |||
printf "Återstående argument: %s\n$*" | |||
</pre> | </pre> | ||
== | == MOTIV == | ||
getopts valdes före getopt eftersom det hanterar argument med blanksteg bättre. | |||
== FRAMTIDA | OPTARG nämns inte i MILJÖVARIABLER eftersom det är en utdata-variabel. | ||
Inga | |||
Kolontecknet (':') först i optsträng ändrar hur fel hanteras, och ersätter äldre OPTERR-variabel. | |||
Exakt format på felmeddelanden är inte specificerat, men ska inkludera programnamn, | |||
ogiltigt flaggtecken och feltyp, t.ex.: | |||
"%s: illegal option -- %c\n" | |||
"%s: option requires an argument -- %c\n" | |||
== FRAMTIDA RIKTNINGAR == | |||
Inga. | |||
== SE ÄVEN == | == SE ÄVEN == | ||
[[getopt(3p)]] | [[getopt(3p)]] | ||
[[pax(1p)]] | [[pax(1p)]] | ||
POSIX.1‐2017: | |||
- Kapitel 8, "Environment Variables" | |||
- Avsnitt 12.2, "Utility Syntax Guidelines" | |||
- Avsnitt 2.5.2, "Special Parameters" | |||
== COPYRIGHT == | == COPYRIGHT == | ||
Delar av denna text är återgivna från IEEE Std 1003.1-2017 och The Open Group Base Specifications Issue 7, 2018 Edition. | |||
Vid avvikelser gäller den officiella versionen från IEEE och The Open Group: | |||
http://www.opengroup.org/unix/online.html | |||
Rapportera formateringsfel: https://www.kernel.org/doc/man-pages/reporting_bugs.html | |||
= Sidslut = | = Sidslut = |
Nuvarande version från 7 april 2025 kl. 09.28
getopts(1p)
NAMN
getopts — tolka flaggor till kommandoradsverktyg
SYNOPSIS
getopts optstr namn [argument ...]
BESKRIVNING
Kommandot getopts läser in flaggor och flaggargument från en lista med parametrar. Det följer riktlinjerna 3 till 10 i POSIX.1‐2017, avsnitt 12.2, "Utility Syntax Guidelines".
Vid varje anrop sparas nästa flagga i skalvariabeln som anges av operanden namn, och indexet för nästa argument i variabeln OPTIND. När skalet startas sätts OPTIND till 1.
Om flaggan kräver ett argument, placeras detta i skalvariabeln OPTARG. Om ingen flagga hittas, eller om flaggan inte har ett argument, kommer OPTARG inte att vara satt.
Om ett tecken som inte ingår i optsträng hittas där en flagga förväntas, sätts namn-variabeln till frågetecknet '?'. Om första tecknet i optsträng är kolon ':', sätts OPTARG till det funna tecknet, annars skrivs ett felmeddelande till standardfel och OPTARG avsätts.
Om ett flaggargument saknas:
- Om optsträng börjar med kolon (':'), sätts namn till kolon och OPTARG till den funna flaggan.
- Annars sätts namn till frågetecken, OPTARG avsätts och ett felmeddelande skrivs till standardfel.
När flaggorna är slut returnerar kommandot ett värde större än noll. OPTIND sätts till index för första operanden eller "$#" + 1 om inga operander finns. namn-variabeln sätts till frågetecken.
Variablerna OPTIND och OPTARG påverkar det aktuella skalets miljö och exporteras inte som standard.
Om OPTIND sätts till 1, kan nya argument användas.
FLAGGOR
Inga.
OPERANDER
Följande operander stöds:
optsträng En sträng som innehåller flaggtecken. Om ett tecken följs av kolon (:), krävs ett argument. Tecken som '?' och ':' ska inte användas. Tecken som inte är alfanumeriska kan ge oförutsägbara resultat.
namn Namnet på en skalvariabel som sätts till den flagga som hittades.
Om argument anges till getopts kommer dessa att tolkas istället för skalets positionella parametrar.
STDIN
Används ej.
INDATAFILAR
Inga.
MILJÖVARIABLER
Följande miljövariabler påverkar körningen: LANG Standardvärde för andra internationaliseringsvariabler. LC_ALL Överskrider alla andra locale-inställningar. LC_CTYPE Påverkar tolkning av text (t.ex. multibyte-tecken). LC_MESSAGES Format och innehåll i felmeddelanden. NLSPATH Plats för meddelandekataloger. OPTIND Används av getopts som index för nästa argument.
ASYNKRONA HÄNDELSER
Standard.
STDOUT
Används ej.
STDERR
Om optsträng inte börjar med kolon (':') och ett fel upptäcks skrivs ett meddelande till standardfel med:
- Programnamnet ($0)
- Den okända flaggan eller saknade flaggargumentet
UTDATAFILAR
Inga.
UTFÖRLIG BESKRIVNING
Ingen.
RETURSTATUS
0 En flagga hittades (även om den är ogiltig). >0 Inga fler flaggor eller fel uppstod.
KONSEKVENSER VID FEL
Standard. Följande avsnitt är informativa.
ANVÄNDNING
Eftersom getopts påverkar det aktuella skalet är det vanligtvis inbyggt. Om det används i en subshell påverkas inte skalets variabler, t.ex.:
(getopts abc värde "$@") nohup getopts ... find . -exec getopts ... \;
Shell-funktioner delar OPTIND med det anropande skalet, vilket kan ge oförutsägbara resultat om båda använder getopts.
EXEMPEL
Ett skript som tolkar flaggor: aflag= bflag= while getopts ab: namn do case $namn in a) aflag=1;; b) bflag=1 bval="$OPTARG";; ?) printf "Användning: %s: [-a] [-b värde] args\n" "$0" exit 2;; esac done if [ ! -z "$aflag" ]; then printf "Flagga -a angavs\n" fi if [ ! -z "$bflag" ]; then printf 'Flagga -b "%s" angavs\n' "$bval" fi shift $(($OPTIND - 1)) printf "Återstående argument: %s\n$*"
MOTIV
getopts valdes före getopt eftersom det hanterar argument med blanksteg bättre.
OPTARG nämns inte i MILJÖVARIABLER eftersom det är en utdata-variabel.
Kolontecknet (':') först i optsträng ändrar hur fel hanteras, och ersätter äldre OPTERR-variabel.
Exakt format på felmeddelanden är inte specificerat, men ska inkludera programnamn, ogiltigt flaggtecken och feltyp, t.ex.:
"%s: illegal option -- %c\n" "%s: option requires an argument -- %c\n"
FRAMTIDA RIKTNINGAR
Inga.
SE ÄVEN
POSIX.1‐2017: - Kapitel 8, "Environment Variables" - Avsnitt 12.2, "Utility Syntax Guidelines" - Avsnitt 2.5.2, "Special Parameters"
COPYRIGHT
Delar av denna text är återgivna från IEEE Std 1003.1-2017 och The Open Group Base Specifications Issue 7, 2018 Edition.
Vid avvikelser gäller den officiella versionen från IEEE och The Open Group: http://www.opengroup.org/unix/online.html
Rapportera formateringsfel: https://www.kernel.org/doc/man-pages/reporting_bugs.html
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/getopts.1p.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.