'\" t .\" Title: getopt .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Comenzi utilizator .\" Source: util-linux 2.41 .\" Language: English .\" .TH "GETOPT" "1" "2025-03-29" "util\-linux 2.41" "Comenzi utilizator" .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 "NUME" getopt \- analizează opțiunile de comandă (îmbunătățit) .SH "REZUMAT" .sp \fBgetopt\fP \fIșir\-opțiuni\fP \fIparametri\fP .sp \fBgetopt\fP [opțiuni] [\fB\-\-\fP] \fIșir\-opțiuni\fP \fIparametri\fP .sp \fBgetopt\fP [opțiuni] \fB\-o\fP|\fB\-\-options\fP \fIșir\-opțiuni\fP [opțiuni] [\fB\-\-\fP] \fIparametri\fP .SH "DESCRIERE" .sp \fBgetopt\fP este utilizat pentru a descompune (\fIanaliza\fP) opțiunile din liniile de comandă pentru o analiză ușoară de către procedurile shell și pentru a verifica dacă opțiunile sunt valide. În acest scop, utilizează rutinele GNU \fBgetopt\fP(3). .sp Parametrii cu care este apelat \fBgetopt\fP pot fi împărțiți în două părți: opțiunile care modifică modul în care \fBgetopt\fP va efectua analiza ( \fIopțiuni\fP și \fIșir\-opțiuni\fP din \fBREZUMAT\fP) și parametrii care trebuie analizați ( \fIparametri\fP din \fBREZUMAT\fP). A doua parte va începe de la primul parametru care nu este un argument de opțiune sau după prima apariție a lui „\fB\-\-\fP”. În cazul în care în prima parte nu se găsește nicio opțiune „\fB\-o\fP” sau „\fB\-\-opțiuni\fP”, primul parametru din a doua parte este utilizat ca șir scurt de opțiuni. .sp Dacă este definită variabila de mediu \fBGETOPT_COMPATIBLE\fP sau dacă primul \fIparametru\fP nu este o opțiune (nu începe cu un „\fB\-\fP”, primul format din \fBREZUMAT\fP), \fBgetopt\fP va genera o ieșire compatibilă cu cea a altor versiuni ale \fBgetopt\fP(1). Acesta va efectua în continuare amestecarea parametrilor și va recunoaște argumentele opționale (a se vedea secțiunea \fBCOMPATIBILITATE\fP pentru mai multe informații). .sp Implementările tradiționale ale \fBgetopt\fP(1) nu sunt capabile să facă față spațiilor albe și altor caractere speciale (specifice shell\-ului) în argumente și în parametrii non\-opțiune. Pentru a rezolva această problemă, această implementare poate genera o ieșire închisă între ghilimele care trebuie din nou interpretată de shell (de obicei prin utilizarea comenzii \fBeval\fP). Acest lucru are ca efect păstrarea acelor caractere, dar trebuie să apelați \fBgetopt\fP într\-un mod care nu mai este compatibil cu alte versiuni (al doilea sau al treilea format din \fBREZUMAT\fP). Pentru a determina dacă această versiune îmbunătățită a \fBgetopt\fP(1) este instalată, se poate utiliza o opțiune specială de testare (\fB\-T\fP). .SH "OPȚIUNI" .sp \fB\-a\fP, \fB\-\-alternative\fP .RS 4 Permite ca opțiunile lungi să înceapă cu o singură „\fB\-\fP”. .RE .sp \fB\-l\fP, \fB\-\-longoptions\fP \fIopțiuni\-lungi\fP .RS 4 Opțiunile lungi (cu mai multe caractere) care trebuie recunoscute. Se pot specifica mai multe nume de opțiuni în același timp, separând numele cu virgule. Această opțiune poate fi dată de mai multe ori, \fIopțiuni\-lungi\fP sunt cumulative. Fiecare nume de opțiune lungă din \fIopțiuni\-lungi\fP poate fi urmat de două puncte „:” pentru a indica că are un argument obligatoriu și de două puncte duble „::” pentru a indica că are un argument opțional. .RE .sp \fB\-n\fP, \fB\-\-name\fP \fInume\-program\fP .RS 4 Numele care va fi utilizat de rutinele \fBgetopt\fP(3) atunci când raportează erori. Rețineți că erorile din \fBgetopt\fP(1) sunt în continuare raportate ca provenind de la getopt. .RE .sp \fB\-o\fP, \fB\-\-options\fP \fIopțiuni\-scurte\fP .RS 4 Opțiunile scurte (un caracter) care trebuie recunoscute. Dacă această opțiune nu este găsită, primul parametru din \fBgetopt\fP care nu începe cu „\fB\-\fP” (și nu este un argument de opțiune) este utilizat ca șir scurt de opțiuni. Fiecare caracter de opțiune scurtă din \fIopțiuni\-scurte\fP poate fi urmat de un caracter de două puncte „:” pentru a indica că are un argument obligatoriu și de două puncte duble „::” pentru a indica că are un argument opțional. Primul caracter din opțiunile scurte poate fi „\fB+\fP” sau „\fB\-\fP” pentru a influența modul în care sunt analizate opțiunile și în care este generată ieșirea (a se vedea secțiunea \fBMODURI DE SCANARE\fP pentru detalii). .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 Dezactivează raportarea erorilor de către \fBgetopt\fP(3). .RE .sp \fB\-Q\fP, \fB\-\-quiet\-output\fP .RS 4 Nu generează o ieșire normală. Erorile sunt în continuare raportate de \fBgetopt\fP(3), cu excepția cazului în care utilizați și \fB\-q\fP. .RE .sp \fB\-s\fP, \fB\-\-shell\fP \fIshell\fP .RS 4 Stabilește convențiile de folosire a ghilimelelor la cele din \fIshell\fP. Dacă opțiunea \fB\-s\fP nu este furnizată, se utilizează convențiile \fBBASH\fP. Argumentele valide sunt în prezent "\fBsh\fP", "\fBbash\fP", "\fBcsh\fP" și "\fBtcsh\fP". .RE .sp \fB\-T\fP, \fB\-\-test\fP .RS 4 Testează dacă \fBgetopt\fP(1) este această versiune îmbunătățită sau o versiune veche. Acest lucru nu generează niciun rezultat și stabilește starea de eroare la 4. Alte implementări ale \fBgetopt\fP(1), precum și această versiune, dacă variabila de mediu \fBGETOPT_COMPATIBLE\fP este definită, vor returna „\fB\-\-\fP” și starea de eroare 0. .RE .sp \fB\-u\fP, \fB\-\-unquoted\fP .RS 4 Nu pune rezultatul între ghilimele. Rețineți că spațiile albe și caracterele speciale (care depind de shell) pot provoca haos în acest mod (la fel ca în cazul altor implementări \fBgetopt\fP(1)). .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Afișează acest mesaj de ajutor și iese. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Afișează versiunea și iese. .RE .SH "ANALIZAREA" .sp Această secțiune specifică formatul celei de\-a doua părți a parametrilor din \fBgetopt\fP (parametrii \fIparametrii\fP din \fBREZUMAT\fP). Următoarea secțiune (\fBIEȘIRE\fP) descrie rezultatul generat. Acești parametri erau, de obicei, parametrii cu care a fost apelată o funcție shell. Trebuie avut grijă ca fiecare parametru cu care a fost apelată funcția shell să corespundă exact unui parametru din lista de parametri din \fBgetopt\fP (a se vedea \fBEXEMPLE\fP). Toate analizele sunt efectuate de rutinele GNU \fBgetopt\fP(3). .sp Parametrii sunt analizați de la stânga la dreapta. Fiecare parametru este clasificat ca fiind o opțiune scurtă, o opțiune lungă, un argument pentru o opțiune sau un parametru neopțional. .sp O opțiune scurtă simplă este un caracter „\fB\-\fP” urmat de un caracter scurt de opțiune. În cazul în care opțiunea are un argument obligatoriu, acesta poate fi scris direct după caracterul de opțiune sau ca următorul parametru (adică separat de spațiu alb în linia de comandă). În cazul în care opțiunea are un argument opțional, acesta trebuie scris direct după caracterul de opțiune, dacă este prezent. .sp Este posibil să se precizeze mai multe opțiuni scurte după un "\fB\-\fP", atâta timp cât toate (cu excepția, eventual, a ultimei opțiuni) nu au argumente obligatorii sau opționale. .sp O opțiune lungă începe în mod normal cu „\fB\-\-\fP” urmate de numele opțiunii lungi. În cazul în care opțiunea are un argument obligatoriu, acesta poate fi scris direct după numele lung al opțiunii, separat de „\fB=\fP"” sau ca următorul argument (adică separat de spațiu alb în linia de comandă). Dacă opțiunea are un argument opțional, acesta trebuie scris direct după numele lung al opțiunii, separat de „\fB=\fP”, dacă este prezent (dacă adăugați „\fB=\fP”, dar nu adăugați nimic în spatele lui, este interpretat ca și cum nu ar fi prezent niciun argument; aceasta este o mică eroare, a se vedea \fBERORI\fP). Opțiunile lungi pot fi prescurtate, atâta timp cât abrevierea nu este ambiguă. .sp Fiecare parametru care nu începe cu „\fB\-\fP” și care nu este un argument obligatoriu al unei opțiuni anterioare este un parametru neopțional. Fiecare parametru care urmează după un parametru „\fB\-\-\fP” este întotdeauna interpretat ca un parametru neopțional. În cazul în care este definită variabila de mediu \fBPOSIXLY_CORRECT\fP sau în cazul în care șirul scurt de opțiuni a început cu „\fB+\fP”, toți parametrii rămași sunt interpretați ca fiind parametrii neopționalii imediat ce este găsit primul parametru neopțional. .SH "IEȘIRE" .sp Se generează o ieșire pentru fiecare element descris în secțiunea anterioară. Ieșirea se face în aceeași ordine în care sunt specificate elementele la intrare, cu excepția parametrilor neopționali. Ieșirea se poate face în modul \fIcompatibil\fP (\fIfără\-ghilimele\fP) sau în așa fel încât spațiile albe și alte caractere speciale din argumente și parametrii neopționali să fie păstrate (a se vedea \fBPUNEREA ÎNTRE GHILIMELE\fP). Atunci când ieșirea este procesată în scriptul shell, aceasta va părea compusă din elemente distincte care pot fi procesate una câte una (prin utilizarea comenzii shift în majoritatea limbajelor shell). Acest lucru este imperfect în modul „fără\-ghilimele”, deoarece elementele pot fi divizate în locuri neașteptate dacă conțin spații albe sau caractere speciale. .sp În cazul în care există probleme de analiză a parametrilor, de exemplu, pentru că un argument necesar nu este găsit sau o opțiune nu este recunoscută, se va raporta o eroare la ieșirea de eroare standard, nu va exista nicio ieșire pentru elementul în neregulă și se va returna o stare de eroare diferită de zero. .sp Pentru o opțiune scurtă, un singur caracter „\fB\-\fP” și caracterul opțiunii sunt generate ca un singur parametru. În cazul în care opțiunea are un argument, următorul parametru va fi argumentul. Dacă opțiunea are un argument opțional, dar nu a fost găsit niciunul, următorul parametru va fi generat, dar va fi gol în modul cu ghilimele, dar nu va fi generat un al doilea parametru în modul fără ghilimele (compatibil). Rețineți că multe alte implementări \fBgetopt\fP(1) nu acceptă argumente opționale. .sp În cazul în care mai multe opțiuni scurte au fost specificate după un singur "\fB\-\fP", fiecare dintre ele va fi prezentă la ieșire ca un parametru separat. .sp Pentru o opțiune lungă, "\fB\-\-\fP" și numele complet al opțiunii sunt generate ca un singur parametru. Acest lucru se face indiferent dacă opțiunea a fost prescurtată sau a fost specificată cu un singur "\fB\-\fP" la intrare. Argumentele sunt tratate ca în cazul opțiunilor scurte. .sp În mod normal, nu se generează nicio ieșire din parametrii fără opțiuni până când nu au fost generate toate opțiunile și argumentele acestora. Apoi se generează „\fB\-\-\fP” ca un singur parametru, după care se generează parametrii neopționali în ordinea în care au fost găsiți, fiecare ca un parametru separat. Numai în cazul în care primul caracter al șirului scurt de opțiuni a fost un „\fB\-\fP”, se generează ieșirea parametrilor neopționali în locul în care sunt găsiți în intrare (acest lucru nu este acceptat dacă se utilizează primul format al \fBREZUMAT\fP; în acest caz, toate aparițiile anterioare ale lui „\fB\-\fP” și „\fB+\fP” sunt ignorate). .SH "PUNEREA ÎNTRE GHILIMELE" .sp În modul de compatibilitate, spațiile albe sau caracterele „speciale” din argumente sau parametrii neopționali nu sunt tratate corect. Pe măsură ce ieșirea este transmisă scriptului shell, scriptul nu știe cum ar trebui să împartă ieșirea în parametri separați. Pentru a ocoli această problemă, această implementare oferă posibilitatea punerii între ghilimele. Ideea este că ieșirea este generată cu ghilimele în jurul fiecărui parametru. Atunci când această ieșire este din nou transmisă către shell (de obicei printr\-o comandă \fBeval\fP), ea este împărțită corect în parametri separați. .sp Punerea între ghilimele nu este activată dacă variabila de mediu \fBGETOPT_COMPATIBLE\fP este definită, dacă se utilizează prima formă a lui din \fBREZUMAT\fP sau dacă se întâlnește opțiunea „\fB\-u\fP”. .sp Diferite shell\-uri folosesc convenții de punere între ghilimele (folosire a ghilimelelor) diferite. Puteți utiliza opțiunea „\fB\-s\fP” pentru a selecta shell\-ul pe care îl utilizați. În prezent, sunt acceptate următoarele shell\-uri: „\fBsh\fP”, „\fBbash\fP”, „\fBcsh\fP” și „\fBtcsh\fP”. De fapt, se disting doar două „arome”: convenții de punere între ghilimele de tip «sh» și convenții de punere între ghilimele de tip «csh». Există șanse ca, dacă folosiți un alt limbaj de script shell, să puteți folosi în continuare una dintre aceste arome (variante). .SH "MODURI DE SCANARE" .sp Primul caracter al șirului scurt de opțiuni poate fi un „\fB\-\fP” sau un „\fB+\fP” pentru a indica un mod special de scanare. În cazul în care se utilizează prima formă de apelare din \fBREZUMAT\fP, acestea sunt ignorate; totuși, variabila de mediu \fBPOSIXLY_CORRECT\fP este în continuare examinată. .sp În cazul în care primul caracter este „\fB+\fP” sau dacă este definită variabila de mediu \fBPOSIXLY_CORRECT\fP, analizarea se oprește imediat ce se găsește primul parametru neopțional (adică un parametru care nu începe cu „\fB\-\fP”) care nu este un argument opțional. Parametrii rămași sunt interpretați toți ca fiind parametri neopționali. .sp În cazul în care primul caracter este un „\fB\-\fP”, parametrii neopționali sunt lăsați în locul în care sunt găsiți; în mod normal, toți parametrii sunt colectați la sfârșitul ieșirii după ce a fost generat un parametru „\fB\-\-\fP”. Rețineți că acest parametru „\fB\-\-\fP” este în continuare generat, dar va fi întotdeauna ultimul parametru în acest mod. .SH "COMPATIBILITATE" .sp Această versiune a \fBgetopt\fP(1) este scrisă pentru a fi cât mai compatibilă cu alte versiuni. De obicei, le puteți înlocui pur și simplu cu această versiune fără modificări și cu unele avantaje. .sp În cazul în care primul caracter al primului parametru din getopt nu este un „\fB\-\fP”, \fBgetopt\fP trece în modul de compatibilitate. Acesta va interpreta primul său parametru ca fiind șirul de opțiuni scurte, iar toate celelalte argumente vor fi analizate. Acesta va continua să amestece parametrii (adică toți parametrii care nu sunt opțiuni sunt afișați la sfârșit), cu excepția cazului în care variabila de mediu \fBPOSIXLY_CORRECT\fP este definită, caz în care \fBgetopt\fP va adăuga automat un „\fB+\fP” înaintea opțiunilor scurte. .sp Variabila de mediu \fBGETOPT_COMPATIBLE\fP forțează \fBgetopt\fP în modul de compatibilitate. Definirea atât a acestei variabile de mediu, cât și a variabilei \fBPOSIXLY_CORRECT\fP oferă compatibilitate 100% pentru programele „dificile”. De obicei, însă, niciuna dintre ele nu este necesară. .sp În modul de compatibilitate, caracterele „\fB\-\fP” și „\fB+\fP” din șirul scurt de opțiuni sunt ignorate. .SH "CODURI DE IEȘIRE" .sp \fBgetopt\fP returnează codul de eroare \fB0\fP în cazul unei analizări reușite, \fB1\fP în cazul în care \fBgetopt\fP(3) returnează erori, \fB2\fP în cazul în care nu\-și înțelege proprii parametri, \fB3\fP în cazul unei erori interne, cum ar fi epuizarea memoriei, și \fB4\fP în cazul în care este apelat cu \fB\-T\fP. .SH "EXEMPLE" .sp Scripturile de exemplu pentru (ba)sh și (t)csh sunt furnizate împreună cu distribuția \fBgetopt\fP(1) și sunt instalate în directorul \fI/usr/share/doc/util\-linux\fP. .SH "MEDIU" .sp \fBPOSIXLY_CORRECT\fP .RS 4 Această variabilă de mediu este examinată de rutinele \fBgetopt\fP(3). Dacă este definită, analizarea se oprește imediat ce se găsește un parametru care nu este o opțiune sau un argument de opțiune. Toți parametrii rămași sunt, de asemenea, interpretați ca parametri care nu sunt opțiuni, indiferent dacă încep cu "\fB\-\fP". .RE .sp \fBGETOPT_COMPATIBLE\fP .RS 4 Forțează \fBgetopt\fP să utilizeze primul format de apelare, așa cum este specificat în \fBREZUMAT\fP. .RE .SH "ERORI" .sp \fBgetopt\fP(3) poate analiza opțiunile lungi cu argumente opționale care primesc un argument opțional gol (dar nu poate face acest lucru pentru opțiunile scurte). Acest \fBgetopt\fP(1) tratează argumentele opționale care sunt goale ca și cum nu ar fi prezente. .sp Sintaxa, în cazul în care nu doriți nicio variabilă de opțiune scurtă nu este foarte intuitivă (trebuie să le definiți în mod explicit la șirul gol). .SH "AUTOR" .sp .MTO "frodo\(atfrodo.looijaard.name" "Frodo Looijaard" "" .SH "CONSULTAȚI ȘI" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBgetopt\fP(3) .SH "RAPORTAREA ERORILOR" .sp Pentru rapoarte de eroare, folosiți \c .URL "https://github.com/util\-linux/util\-linux/issues" "sistemul de urmărire al erorilor" "." .SH "DISPONIBILITATE" .sp Comanda \fBgetopt\fP face parte din pachetul util\-linux care poate fi descărcat de la \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."