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 № 1Od 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.