.\" {PTM/PB/0.1/02-10-1998/"analizuj opcje linii komend"}
.\" Translation (c) 1998 Przemek Borys <pborys@p-soft.silesia.linux.org.pl>
.Dd June 21, 1993
.Dt GETOPT 1
.Os
.Sh NAZWA
.Nm getopt
.Nd analizuj opcje linii komend
.Sh SKŁADNIA
.Nm set \-\- \`getopt optstring $*\`
.Sh OPIS
.Nm Getopt
jest używany do rozbijania opcji w liniach komend dla łatwej analizy przez
procedury shellowe i do sprawdzania istnienia opcji legalnych.
.Op Optstring
jest ciągniem rozpoznawalnych liter opcyjnych (zobacz
.Xr getopt 3
);
jeśli po literze następuje średnik, opcja ma w domyśle argument, który może,
lecz nie musi być oddzielony od niej białą spacją.
Opcja specjalna
.B \-\-
używana jest do wskazania końca opcji.
.Nm Getopt
Podstawi
.B \-\-
w argumentach na samym końcu opcji, lub rozpozna ten symbol, jeśli
wstawiono go jawnie.
Argumenty shellowe
(\fB$1 $2\fR ...) są resetowane tak, że każda opcja jest poprzedzona znakiem
.B \-
i w swoim własnym argumencie shellowym; każdy argument opcyjny jest także w
swoim własnym argumencie shellowym.
.Sh PRZYKŁAD
Następujący fragment kodu pokazuj jak można przetworzyć arumenty komendy,
która może pobierać opcje
.Op a
i
.Op b ,
a także opcję
.Op o ,
która wymaga argumentu.
.Pp
.Bd -literal -offset indent
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
.Ed
.Pp
Kod ten przyjmie dowone opcje z następujących jako identyczne:
.Pp
.Bd -literal -offset indent
cmd \-aoarg plik plik
cmd \-a \-o arg plik plik
cmd \-oarg -a plik plik
cmd \-a \-oarg \-\- plik plik
.Ed
.Sh ZOBACZ TAKŻE
.Xr sh 1 ,
.Xr getopt 3
.Sh DIAGNOSTYKA
.Nm Getopt
drukuje wiadomość o błedzie, jeśli napotka literę opcyjną niezałączoną w
stringu
.Op optstring .
.Sh HISTORIA
Napisane przez Henry'ego Spencera, pracującego na podstawie strony man Bell
Labs. Zachowanie powinno być identyczne jak w wersji Bell.
.Sh BŁĘDY
Takie same jak w
.Xr getopt 3 .
.Pp
Arugmenty zawierające białe spacje, lub załączone metaznaki shella nie
przeżyją nienaruszone; wygląda to na łatwy do naprawienia błąd, lecz tak nie
jest.
.Pp
Wiadomość o błędzie dla nieprawidłowej opcji jest wskazywana jako pochodząca
z programu
.Nm getopt
a nie z procedury shellowej, zawierającej wywołanie
.Nm getopt ;
jest to znowu trudne do naprawienia.
.Pp
Najlepsza droga, czyli
.Nm set
, do ustawiania argumentów bez rozrywania wartości opcji shellowych zmienia
się z jednej wersji shella na inną.
