Это значение по умолчанию для оператора case
, но оно означает что-то конкретное в контексте getopts
: у вас есть определенный параметр, но нет условия для его обработки.
Если вы, например, запустите ./myTask -z
, вы увидите вывод «default» в виде @that_other_guy в другом ответе.
Если вы хотите вывести что-то, что указывает на то, что опция не была предоставлена:
Затем после блока while getopts
, но перед строкой shift $(($OPTIND - 1))
, сделайте это (с любой обработкой, которую вы хотите внутриблок if
:
if ((OPTIND == 1))
then
echo "No options specified"
fi
Обратите внимание, что это не означает, что аргументы не были указаны (например, ./myTask
как в вашем вопросе). Чтобы сделать что-то с этим, добавьтеэто после строки shift
:
if (($# == 0))
then
echo "No positional arguments specified"
fi
См. справочную реализацию функции getopts
в моем ответе здесь .