bash Вывод недопустимой опции - PullRequest
1 голос
/ 14 апреля 2011

Скажем, у меня есть следующий скрипт для обработки опций:

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

Я хочу заменить [?] На неверный ключ, который я ввел.Так что, если я введу

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

Как бы я перехватил этот неверный переключатель?При использовании моей переменной $ opts отображается знак вопроса.

1 Ответ

5 голосов
/ 14 апреля 2011

С 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.
...