table of contents
GETOPT(1) | General Commands Manual | GETOPT(1) |
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¶
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ą.
21 czerwca 1993 | Linux 5.14.0-427.18.1.el9_4.x86_64 |