/ / bash Wyprowadzanie niepoprawnej opcji - linux, bash, switch-statement, opcjonalne parametry

bash Wyprowadzanie niepoprawnej opcji - linux, bash, switch-statement, opcjonalne parametry

Powiedz, że mam następujący skrypt do obsługi opcji:

while getopts dsf opts 2>/dev/null
do
case $opts in
d) echo "d";;
s) echo "s";;
?) echo "Error: An invalid option [?] was entered.";
exit 1;;
esac
done

Chcę zastąpić [?] Nieprawidłowym przełącznikiem, który wprowadziłem. Więc jeśli wejdę

./myscript -z //output: Error: An invalid option [-z] was entered.

Jak złapałbym ten nieprawidłowy przełącznik? Używanie zmiennej $ opts powoduje wyświetlenie znaku zapytania.

Odpowiedzi:

5 dla odpowiedzi № 1

Od help getopts:

getopts reports errors in one of two ways.  If the first character
of OPTSTRING is a colon, getopts uses silent error reporting.  In
this mode, no error messages are printed.  If an invalid option is
seen, getopts places the option character found into OPTARG.