Provided by: util-linux-locales_2.41-4ubuntu3_all bug

NUME

       getopt - analizează opțiunile de comandă (îmbunătățit)

REZUMAT

       getopt șir-opțiuni parametri

       getopt [opțiuni] [--] șir-opțiuni parametri

       getopt [opțiuni] -o|--options șir-opțiuni [opțiuni] [--] parametri

DESCRIERE

       getopt este utilizat pentru a descompune (analiza) 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 getopt(3).

       Parametrii cu care este apelat getopt pot fi împărțiți în două părți: opțiunile care modifică modul în
       care getopt va efectua analiza ( opțiuni și șir-opțiuni din REZUMAT) și parametrii care trebuie analizați
       ( parametri din REZUMAT). A doua parte va începe de la primul parametru care nu este un argument de
       opțiune sau după prima apariție a lui „--”. În cazul în care în prima parte nu se găsește nicio opțiune
       „-o” sau „--opțiuni”, primul parametru din a doua parte este utilizat ca șir scurt de opțiuni.

       Dacă este definită variabila de mediu GETOPT_COMPATIBLE sau dacă primul parametru nu este o opțiune (nu
       începe cu un „-”, primul format din REZUMAT), getopt va genera o ieșire compatibilă cu cea a altor
       versiuni ale getopt(1). Acesta va efectua în continuare amestecarea parametrilor și va recunoaște
       argumentele opționale (a se vedea secțiunea COMPATIBILITATE pentru mai multe informații).

       Implementările tradiționale ale getopt(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 eval). Acest lucru are ca efect păstrarea
       acelor caractere, dar trebuie să apelați getopt într-un mod care nu mai este compatibil cu alte versiuni
       (al doilea sau al treilea format din REZUMAT). Pentru a determina dacă această versiune îmbunătățită a
       getopt(1) este instalată, se poate utiliza o opțiune specială de testare (-T).

OPȚIUNI

       -a, --alternative
           Permite ca opțiunile lungi să înceapă cu o singură „-”.

       -l, --longoptions opțiuni-lungi
           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,
           opțiuni-lungi sunt cumulative. Fiecare nume de opțiune lungă din opțiuni-lungi 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.

       -n, --name nume-program
           Numele care va fi utilizat de rutinele getopt(3) atunci când raportează erori. Rețineți că erorile
           din getopt(1) sunt în continuare raportate ca provenind de la getopt.

       -o, --options opțiuni-scurte
           Opțiunile scurte (un caracter) care trebuie recunoscute. Dacă această opțiune nu este găsită, primul
           parametru din getopt care nu începe cu „-” (și nu este un argument de opțiune) este utilizat ca șir
           scurt de opțiuni. Fiecare caracter de opțiune scurtă din opțiuni-scurte 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 „+” sau „-”
           pentru a influența modul în care sunt analizate opțiunile și în care este generată ieșirea (a se
           vedea secțiunea MODURI DE SCANARE pentru detalii).

       -q, --quiet
           Dezactivează raportarea erorilor de către getopt(3).

       -Q, --quiet-output
           Nu generează o ieșire normală. Erorile sunt în continuare raportate de getopt(3), cu excepția cazului
           în care utilizați și -q.

       -s, --shell shell
           Stabilește convențiile de folosire a ghilimelelor la cele din shell. Dacă opțiunea -s nu este
           furnizată, se utilizează convențiile BASH. Argumentele valide sunt în prezent "sh", "bash", "csh" și
           "tcsh".

       -T, --test
           Testează dacă getopt(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 getopt(1),
           precum și această versiune, dacă variabila de mediu GETOPT_COMPATIBLE este definită, vor returna „--”
           și starea de eroare 0.

       -u, --unquoted
           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 getopt(1)).

       -h, --help
           Afișează acest mesaj de ajutor și iese.

       -V, --version
           Afișează versiunea și iese.

ANALIZAREA

       Această secțiune specifică formatul celei de-a doua părți a parametrilor din getopt (parametrii
       parametrii din REZUMAT). Următoarea secțiune (IEȘIRE) 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 getopt (a
       se vedea EXEMPLE). Toate analizele sunt efectuate de rutinele GNU getopt(3).

       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.

       O opțiune scurtă simplă este un caracter „-” 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.

       Este posibil să se precizeze mai multe opțiuni scurte după un "-", atâta timp cât toate (cu excepția,
       eventual, a ultimei opțiuni) nu au argumente obligatorii sau opționale.

       O opțiune lungă începe în mod normal cu „--” 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 „="”
       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 „=”, dacă este
       prezent (dacă adăugați „=”, 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 ERORI). Opțiunile lungi pot fi
       prescurtate, atâta timp cât abrevierea nu este ambiguă.

       Fiecare parametru care nu începe cu „-” și care nu este un argument obligatoriu al unei opțiuni
       anterioare este un parametru neopțional. Fiecare parametru care urmează după un parametru „--” este
       întotdeauna interpretat ca un parametru neopțional. În cazul în care este definită variabila de mediu
       POSIXLY_CORRECT sau în cazul în care șirul scurt de opțiuni a început cu „+”, toți parametrii rămași sunt
       interpretați ca fiind parametrii neopționalii imediat ce este găsit primul parametru neopțional.

IEȘIRE

       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 compatibil (fără-ghilimele) 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 PUNEREA ÎNTRE GHILIMELE).
       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.

       Î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.

       Pentru o opțiune scurtă, un singur caracter „-” ș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 getopt(1) nu acceptă argumente opționale.

       În cazul în care mai multe opțiuni scurte au fost specificate după un singur "-", fiecare dintre ele va
       fi prezentă la ieșire ca un parametru separat.

       Pentru o opțiune lungă, "--" ș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 "-" la
       intrare. Argumentele sunt tratate ca în cazul opțiunilor scurte.

       Î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ă „--” 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 „-”, 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 REZUMAT; în acest caz, toate aparițiile anterioare ale lui „-” și „+” sunt
       ignorate).

PUNEREA ÎNTRE GHILIMELE

       Î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ă eval), ea este împărțită corect în parametri separați.

       Punerea între ghilimele nu este activată dacă variabila de mediu GETOPT_COMPATIBLE este definită, dacă se
       utilizează prima formă a lui din REZUMAT sau dacă se întâlnește opțiunea „-u”.

       Diferite shell-uri folosesc convenții de punere între ghilimele (folosire a ghilimelelor) diferite.
       Puteți utiliza opțiunea „-s” pentru a selecta shell-ul pe care îl utilizați. În prezent, sunt acceptate
       următoarele shell-uri: „sh”, „bash”, „csh” și „tcsh”. 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).

MODURI DE SCANARE

       Primul caracter al șirului scurt de opțiuni poate fi un „-” sau un „+” pentru a indica un mod special de
       scanare. În cazul în care se utilizează prima formă de apelare din REZUMAT, acestea sunt ignorate;
       totuși, variabila de mediu POSIXLY_CORRECT este în continuare examinată.

       În cazul în care primul caracter este „+” sau dacă este definită variabila de mediu POSIXLY_CORRECT,
       analizarea se oprește imediat ce se găsește primul parametru neopțional (adică un parametru care nu
       începe cu „-”) care nu este un argument opțional. Parametrii rămași sunt interpretați toți ca fiind
       parametri neopționali.

       În cazul în care primul caracter este un „-”, 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 „--”. Rețineți că acest parametru „--” este în continuare generat, dar va fi întotdeauna
       ultimul parametru în acest mod.

COMPATIBILITATE

       Această versiune a getopt(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.

       În cazul în care primul caracter al primului parametru din getopt nu este un „-”, getopt 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
       POSIXLY_CORRECT este definită, caz în care getopt va adăuga automat un „+” înaintea opțiunilor scurte.

       Variabila de mediu GETOPT_COMPATIBLE forțează getopt în modul de compatibilitate. Definirea atât a
       acestei variabile de mediu, cât și a variabilei POSIXLY_CORRECT oferă compatibilitate 100% pentru
       programele „dificile”. De obicei, însă, niciuna dintre ele nu este necesară.

       În modul de compatibilitate, caracterele „-” și „+” din șirul scurt de opțiuni sunt ignorate.

CODURI DE IEȘIRE

       getopt returnează codul de eroare 0 în cazul unei analizări reușite, 1 în cazul în care getopt(3)
       returnează erori, 2 în cazul în care nu-și înțelege proprii parametri, 3 în cazul unei erori interne, cum
       ar fi epuizarea memoriei, și 4 în cazul în care este apelat cu -T.

EXEMPLE

       Scripturile de exemplu pentru (ba)sh și (t)csh sunt furnizate împreună cu distribuția getopt(1) și sunt
       instalate în directorul /usr/share/doc/util-linux.

MEDIU

       POSIXLY_CORRECT
           Această variabilă de mediu este examinată de rutinele getopt(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 "-".

       GETOPT_COMPATIBLE
           Forțează getopt să utilizeze primul format de apelare, așa cum este specificat în REZUMAT.

ERORI

       getopt(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 getopt(1) tratează argumentele opționale care
       sunt goale ca și cum nu ar fi prezente.

       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).

AUTOR

       Frodo Looijaard <frodo@frodo.looijaard.name>

CONSULTAȚI ȘI

       bash(1), tcsh(1), getopt(3)

RAPORTAREA ERORILOR

       Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor
       <https://github.com/util-linux/util-linux/issues>.

DISPONIBILITATE

       Comanda getopt face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive
       <https://www.kernel.org/pub/linux/utils/util-linux/>.

util-linux 2.41                                    2025-07-02                                          GETOPT(1)