GETOPT(1)                     Comenzi utilizator                     GETOPT(1)

NUME
       getopt - analizeaza op<?>iunile de comanda (imbunata<?>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 comanda pentru o analiza u<?>oara de catre procedurile shell
       <?>i pentru a verifica daca op<?>iunile sunt valide. In acest scop,
       utilizeaza rutinele GNU getopt(3).

       Parametrii cu care este apelat getopt pot fi impar<?>i<?>i in doua
       par<?>i: op<?>iunile care modifica modul in 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
       incepe de la primul parametru care nu este un argument de op<?>iune sau
       dupa prima apari<?>ie a lui ,,--". In cazul in care in prima parte nu
       se gase<?>te nicio op<?>iune ,,-o" sau ,,--op<?>iuni", primul parametru
       din a doua parte este utilizat ca <?>ir scurt de op<?>iuni.

       Daca este definita variabila de mediu GETOPT_COMPATIBLE sau daca primul
       parametru nu este o op<?>iune (nu incepe cu un ,,-", primul format din
       REZUMAT), getopt va genera o ie<?>ire compatibila cu cea a altor
       versiuni ale getopt(1). Acesta va efectua in continuare amestecarea
       parametrilor <?>i va recunoa<?>te argumentele op<?>ionale (a se vedea
       sec<?>iunea COMPATIBILITATE pentru mai multe informa<?>ii).

       Implementarile tradi<?>ionale ale getopt(1) nu sunt capabile sa faca
       fa<?>a spa<?>iilor albe <?>i altor caractere speciale (specifice
       shell-ului) in argumente <?>i in parametrii non-op<?>iune. Pentru a
       rezolva aceasta problema, aceasta implementare poate genera o ie<?>ire
       inchisa intre ghilimele care trebuie din nou interpretata de shell (de
       obicei prin utilizarea comenzii eval). Acest lucru are ca efect
       pastrarea acelor caractere, dar trebuie sa apela<?>i getopt intr-un mod
       care nu mai este compatibil cu alte versiuni (al doilea sau al treilea
       format din REZUMAT). Pentru a determina daca aceasta versiune
       imbunata<?>ita a getopt(1) este instalata, se poate utiliza o op<?>iune
       speciala de testare (-T).

OP<?>IUNI
       -a, --alternative
           Permite ca op<?>iunile lungi sa inceapa cu o singura ,,-".

       -l, --longoptions op<?>iuni-lungi
           Op<?>iunile lungi (cu mai multe caractere) care trebuie
           recunoscute. Se pot specifica mai multe nume de op<?>iuni in
           acela<?>i timp, separand numele cu virgule. Aceasta op<?>iune poate
           fi data de mai multe ori, op<?>iuni-lungi sunt cumulative. Fiecare
           nume de op<?>iune lunga din op<?>iuni-lungi poate fi urmat de doua
           puncte ,,:" pentru a indica ca are un argument obligatoriu <?>i de
           doua puncte duble ,,::" pentru a indica ca are un argument
           op<?>ional.

       -n, --name nume-program
           Numele care va fi utilizat de rutinele getopt(3) atunci cand
           raporteaza erori. Re<?>ine<?>i ca erorile din getopt(1) sunt in
           continuare raportate ca provenind de la getopt.

       -o, --options op<?>iuni-scurte
           Op<?>iunile scurte (un caracter) care trebuie recunoscute. Daca
           aceasta op<?>iune nu este gasita, primul parametru din getopt care
           nu incepe cu ,,-" (<?>i nu este un argument de op<?>iune) este
           utilizat ca <?>ir scurt de op<?>iuni. Fiecare caracter de op<?>iune
           scurta din op<?>iuni-scurte poate fi urmat de un caracter de doua
           puncte ,,:" pentru a indica ca are un argument obligatoriu <?>i de
           doua puncte duble ,,::" pentru a indica ca are un argument
           op<?>ional. Primul caracter din op<?>iunile scurte poate fi ,,+"
           sau ,,-" pentru a influen<?>a modul in care sunt analizate
           op<?>iunile <?>i in care este generata ie<?>irea (a se vedea
           sec<?>iunea MODURI DE SCANARE pentru detalii).

       -q, --quiet
           Dezactiveaza raportarea erorilor de catre getopt(3).

       -Q, --quiet-output
           Nu genereaza o ie<?>ire normala. Erorile sunt in continuare
           raportate de getopt(3), cu excep<?>ia cazului in care utiliza<?>i
           <?>i -q.

       -s, --shell shell
           Stabile<?>te conven<?>iile de folosire a ghilimelelor la cele din
           shell. Daca op<?>iunea -s nu este furnizata, se utilizeaza
           conven<?>iile BASH. Argumentele valide sunt in prezent "sh",
           "bash", "csh" <?>i "tcsh".

       -T, --test
           Testeaza daca getopt(1) este aceasta versiune imbunata<?>ita sau o
           versiune veche. Acest lucru nu genereaza niciun rezultat <?>i
           stabile<?>te starea de eroare la 4. Alte implementari ale
           getopt(1), precum <?>i aceasta versiune, daca variabila de mediu
           GETOPT_COMPATIBLE este definita, vor returna ,,--" <?>i starea de
           eroare 0.

       -u, --unquoted
           Nu pune rezultatul intre ghilimele. Re<?>ine<?>i ca spa<?>iile albe
           <?>i caracterele speciale (care depind de shell) pot provoca haos
           in acest mod (la fel ca in cazul altor implementari getopt(1)).

       -h, --help
           Afi<?>eaza acest mesaj de ajutor <?>i iese.

       -V, --version
           Afi<?>eaza versiunea <?>i iese.

ANALIZAREA
       Aceasta sec<?>iune specifica formatul celei de-a doua par<?>i a
       parametrilor din getopt (parametrii parametrii din REZUMAT). Urmatoarea
       sec<?>iune (IE<?>IRE) descrie rezultatul generat. Ace<?>ti parametri
       erau, de obicei, parametrii cu care a fost apelata o func<?>ie shell.
       Trebuie avut grija ca fiecare parametru cu care a fost apelata
       func<?>ia shell sa corespunda 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 stanga la dreapta. Fiecare parametru
       este clasificat ca fiind o op<?>iune scurta, o op<?>iune lunga, un
       argument pentru o op<?>iune sau un parametru neop<?>ional.

       O op<?>iune scurta simpla este un caracter ,,-" urmat de un caracter
       scurt de op<?>iune. In cazul in care op<?>iunea are un argument
       obligatoriu, acesta poate fi scris direct dupa caracterul de op<?>iune
       sau ca urmatorul parametru (adica separat de spa<?>iu alb in linia de
       comanda). In cazul in care op<?>iunea are un argument op<?>ional,
       acesta trebuie scris direct dupa caracterul de op<?>iune, daca este
       prezent.

       Este posibil sa se precizeze mai multe op<?>iuni scurte dupa un "-",
       atata timp cat toate (cu excep<?>ia, eventual, a ultimei op<?>iuni) nu
       au argumente obligatorii sau op<?>ionale.

       O op<?>iune lunga incepe in mod normal cu ,,--" urmate de numele
       op<?>iunii lungi. In cazul in care op<?>iunea are un argument
       obligatoriu, acesta poate fi scris direct dupa numele lung al
       op<?>iunii, separat de ,,="" sau ca urmatorul argument (adica separat
       de spa<?>iu alb in linia de comanda). Daca op<?>iunea are un argument
       op<?>ional, acesta trebuie scris direct dupa numele lung al op<?>iunii,
       separat de ,,=", daca este prezent (daca adauga<?>i ,,=", dar nu
       adauga<?>i nimic in spatele lui, este interpretat ca <?>i cum nu ar fi
       prezent niciun argument; aceasta este o mica eroare, a se vedea ERORI).
       Op<?>iunile lungi pot fi prescurtate, atata timp cat abrevierea nu este
       ambigua.

       Fiecare parametru care nu incepe cu ,,-" <?>i care nu este un argument
       obligatoriu al unei op<?>iuni anterioare este un parametru
       neop<?>ional. Fiecare parametru care urmeaza dupa un parametru ,,--"
       este intotdeauna interpretat ca un parametru neop<?>ional. In cazul in
       care este definita variabila de mediu POSIXLY_CORRECT sau in cazul in
       care <?>irul scurt de op<?>iuni a inceput cu ,,+", to<?>i parametrii
       rama<?>i sunt interpreta<?>i ca fiind parametrii neop<?>ionalii imediat
       ce este gasit primul parametru neop<?>ional.

IE<?>IRE
       Se genereaza o ie<?>ire pentru fiecare element descris in sec<?>iunea
       anterioara. Ie<?>irea se face in aceea<?>i ordine in care sunt
       specificate elementele la intrare, cu excep<?>ia parametrilor
       neop<?>ionali. Ie<?>irea se poate face in modul compatibil
       (fara-ghilimele) sau in a<?>a fel incat spa<?>iile albe <?>i alte
       caractere speciale din argumente <?>i parametrii neop<?>ionali sa fie
       pastrate (a se vedea PUNEREA INTRE GHILIMELE). Atunci cand ie<?>irea
       este procesata in scriptul shell, aceasta va parea compusa din elemente
       distincte care pot fi procesate una cate una (prin utilizarea comenzii
       shift in majoritatea limbajelor shell). Acest lucru este imperfect in
       modul ,,fara-ghilimele", deoarece elementele pot fi divizate in locuri
       nea<?>teptate daca con<?>in spa<?>ii albe sau caractere speciale.

       In cazul in care exista probleme de analiza a parametrilor, de exemplu,
       pentru ca un argument necesar nu este gasit sau o op<?>iune nu este
       recunoscuta, se va raporta o eroare la ie<?>irea de eroare standard, nu
       va exista nicio ie<?>ire pentru elementul in neregula <?>i se va
       returna o stare de eroare diferita de zero.

       Pentru o op<?>iune scurta, un singur caracter ,,-" <?>i caracterul
       op<?>iunii sunt generate ca un singur parametru. In cazul in care
       op<?>iunea are un argument, urmatorul parametru va fi argumentul. Daca
       op<?>iunea are un argument op<?>ional, dar nu a fost gasit niciunul,
       urmatorul parametru va fi generat, dar va fi gol in modul cu ghilimele,
       dar nu va fi generat un al doilea parametru in modul fara ghilimele
       (compatibil). Re<?>ine<?>i ca multe alte implementari getopt(1) nu
       accepta argumente op<?>ionale.

       In cazul in care mai multe op<?>iuni scurte au fost specificate dupa un
       singur "-", fiecare dintre ele va fi prezenta la ie<?>ire ca un
       parametru separat.

       Pentru o op<?>iune lunga, "--" <?>i numele complet al op<?>iunii sunt
       generate ca un singur parametru. Acest lucru se face indiferent daca
       op<?>iunea a fost prescurtata sau a fost specificata cu un singur "-"
       la intrare. Argumentele sunt tratate ca in cazul op<?>iunilor scurte.

       In mod normal, nu se genereaza nicio ie<?>ire din parametrii fara
       op<?>iuni pana cand nu au fost generate toate op<?>iunile <?>i
       argumentele acestora. Apoi se genereaza ,,--" ca un singur parametru,
       dupa care se genereaza parametrii neop<?>ionali in ordinea in care au
       fost gasi<?>i, fiecare ca un parametru separat. Numai in cazul in care
       primul caracter al <?>irului scurt de op<?>iuni a fost un ,,-", se
       genereaza ie<?>irea parametrilor neop<?>ionali in locul in care sunt
       gasi<?>i in intrare (acest lucru nu este acceptat daca se utilizeaza
       primul format al REZUMAT; in acest caz, toate apari<?>iile anterioare
       ale lui ,,-" <?>i ,,+" sunt ignorate).

PUNEREA INTRE GHILIMELE
       In modul de compatibilitate, spa<?>iile albe sau caracterele
       ,,speciale" din argumente sau parametrii neop<?>ionali nu sunt tratate
       corect. Pe masura ce ie<?>irea este transmisa scriptului shell,
       scriptul nu <?>tie cum ar trebui sa imparta ie<?>irea in parametri
       separa<?>i. Pentru a ocoli aceasta problema, aceasta implementare ofera
       posibilitatea punerii intre ghilimele. Ideea este ca ie<?>irea este
       generata cu ghilimele in jurul fiecarui parametru. Atunci cand aceasta
       ie<?>ire este din nou transmisa catre shell (de obicei printr-o comanda
       eval), ea este impar<?>ita corect in parametri separa<?>i.

       Punerea intre ghilimele nu este activata daca variabila de mediu
       GETOPT_COMPATIBLE este definita, daca se utilizeaza prima forma a lui
       din REZUMAT sau daca se intalne<?>te op<?>iunea ,,-u".

       Diferite shell-uri folosesc conven<?>ii de punere intre ghilimele
       (folosire a ghilimelelor) diferite. Pute<?>i utiliza op<?>iunea ,,-s"
       pentru a selecta shell-ul pe care il utiliza<?>i. In prezent, sunt
       acceptate urmatoarele shell-uri: ,,sh", ,,bash", ,,csh" <?>i ,,tcsh".
       De fapt, se disting doar doua ,,arome": conven<?>ii de punere intre
       ghilimele de tip <<sh>> <?>i conven<?>ii de punere intre ghilimele de
       tip <<csh>>. Exista <?>anse ca, daca folosi<?>i un alt limbaj de script
       shell, sa pute<?>i folosi in 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. In cazul in care se
       utilizeaza prima forma de apelare din REZUMAT, acestea sunt ignorate;
       totu<?>i, variabila de mediu POSIXLY_CORRECT este in continuare
       examinata.

       In cazul in care primul caracter este ,,+" sau daca este definita
       variabila de mediu POSIXLY_CORRECT, analizarea se opre<?>te imediat ce
       se gase<?>te primul parametru neop<?>ional (adica un parametru care nu
       incepe cu ,,-") care nu este un argument op<?>ional. Parametrii
       rama<?>i sunt interpreta<?>i to<?>i ca fiind parametri neop<?>ionali.

       In cazul in care primul caracter este un ,,-", parametrii neop<?>ionali
       sunt lasa<?>i in locul in care sunt gasi<?>i; in mod normal, to<?>i
       parametrii sunt colecta<?>i la sfar<?>itul ie<?>irii dupa ce a fost
       generat un parametru ,,--". Re<?>ine<?>i ca acest parametru ,,--" este
       in continuare generat, dar va fi intotdeauna ultimul parametru in acest
       mod.

COMPATIBILITATE
       Aceasta versiune a getopt(1) este scrisa pentru a fi cat mai
       compatibila cu alte versiuni. De obicei, le pute<?>i inlocui pur <?>i
       simplu cu aceasta versiune fara modificari <?>i cu unele avantaje.

       In cazul in care primul caracter al primului parametru din getopt nu
       este un ,,-", getopt trece in modul de compatibilitate. Acesta va
       interpreta primul sau parametru ca fiind <?>irul de op<?>iuni scurte,
       iar toate celelalte argumente vor fi analizate. Acesta va continua sa
       amestece parametrii (adica to<?>i parametrii care nu sunt op<?>iuni
       sunt afi<?>a<?>i la sfar<?>it), cu excep<?>ia cazului in care variabila
       de mediu POSIXLY_CORRECT este definita, caz in care getopt va adauga
       automat un ,,+" inaintea op<?>iunilor scurte.

       Variabila de mediu GETOPT_COMPATIBLE for<?>eaza getopt in modul de
       compatibilitate. Definirea atat a acestei variabile de mediu, cat <?>i
       a variabilei POSIXLY_CORRECT ofera compatibilitate 100% pentru
       programele ,,dificile". De obicei, insa, niciuna dintre ele nu este
       necesara.

       In modul de compatibilitate, caracterele ,,-" <?>i ,,+" din <?>irul
       scurt de op<?>iuni sunt ignorate.

CODURI DE IE<?>IRE
       getopt returneaza codul de eroare 0 in cazul unei analizari reu<?>ite,
       1 in cazul in care getopt(3) returneaza erori, 2 in cazul in care
       nu-<?>i in<?>elege proprii parametri, 3 in cazul unei erori interne,
       cum ar fi epuizarea memoriei, <?>i 4 in cazul in care este apelat cu
       -T.

EXEMPLE
       Scripturile de exemplu pentru (ba)sh <?>i (t)csh sunt furnizate
       impreuna cu distribu<?>ia getopt(1) <?>i sunt instalate in directorul
       /usr/share/doc/util-linux.

MEDIU
       POSIXLY_CORRECT
           Aceasta variabila de mediu este examinata de rutinele getopt(3).
           Daca este definita, analizarea se opre<?>te imediat ce se gase<?>te
           un parametru care nu este o op<?>iune sau un argument de op<?>iune.
           To<?>i parametrii rama<?>i sunt, de asemenea, interpreta<?>i ca
           parametri care nu sunt op<?>iuni, indiferent daca incep cu "-".

       GETOPT_COMPATIBLE
           For<?>eaza getopt sa utilizeze primul format de apelare, a<?>a cum
           este specificat in 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) trateaza argumentele
       op<?>ionale care sunt goale ca <?>i cum nu ar fi prezente.

       Sintaxa, in cazul in care nu dori<?>i nicio variabila de op<?>iune
       scurta nu este foarte intuitiva (trebuie sa le defini<?>i in 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 urmarire al erorilor
       <https://github.com/util-linux/util-linux/issues>.

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

util-linux 2.41                   2025-03-29                         GETOPT(1)