getopt

Autres langues

Langue: pl

Autres versions - même langue

Version: 99102 (fedora - 25/11/07)

Autres sections - même nom

Section: 1 (Commandes utilisateur)


BSD mandoc

NAZWA

getopt - analizuj opcje linii komend

SKŁADNIA

set -- `getopt optstring $*`

OPIS

Getopt jest używany do rozbijania opcji w liniach komend dla łatwej analizy przez procedury powłokowe i do sprawdzania istnienia opcji legalnych. [Optstring] jest ciągiem rozpoznawalnych liter opcyjnych (zobacz getopt(3) ); jeśli po literze następuje dwukropek, opcja ma w domyśle argument, który może, lecz nie musi być oddzielony od niej białą spacją. Opcja specjalna -- używana jest do wskazania końca opcji. Jeśli symbolu -- nie wstawiono w ciąg opcji jawnie, getopt podstawia automatycznie ten znak na samym końcu opcji. Argumenty powłokowe ($1 $2 ...) są resetowane tak, że każda opcja jest poprzedzona znakiem - i w swoim własnym argumencie powłokowym; każdy argument opcyjny jest także w swoim własnym argumencie powłokowym.

PRZYKŁAD

Następujący fragment kodu pokazuje jak można przetworzyć argumenty komendy, która może pobierać opcje [a] i [b] a także opcję [o] która wymaga argumentu.
 set -- `getopt abo: $*`
 if test $? != 0
 then
         echo 'Użycie: ...'
         exit 2
 fi
 for i
 do
         case "$i"
         in
                 -a|-b)
                         flag=$i; shift;;
                 -o)
                         oarg=$2; shift; shift;;
                 --)
                         shift; break;;
         esac
 done
 

Kod ten przyjmie dowolne opcje z następujących jako identyczne:

 cmd -aoarg plik plik
 cmd -a -o arg plik plik
 cmd -oarg -a plik plik
 cmd -a -oarg -- plik plik
 

ZOBACZ TAKŻE

sh(1), getopt(3)

DIAGNOSTYKA

Getopt drukuje wiadomość o błędzie, jeśli napotka literę opcyjną niezałączoną w napisie [optstring]

HISTORIA

Napisane przez Henry'ego Spencera, pracującego na podstawie strony man Bell Labs. Zachowanie powinno być identyczne jak w wersji Bell.

BŁĘDY

Takie same jak w getopt(3).

Argumenty zawierające białe spacje, lub załączone metaznaki powłoki nie przeżyją nienaruszone; wygląda to na łatwy do naprawienia błąd, lecz tak nie jest.

Wiadomość o błędzie dla nieprawidłowej opcji jest wskazywana jako pochodząca z programu getopt a nie z procedury powłokowej, zawierającej wywołanie getopt jest to znowu trudne do naprawienia.

Najlepsza droga, czyli set , do ustawiania argumentów bez rozrywania wartości opcji powłokowych zmienia się z jednej wersji powłoki na inną.