Я пытаюсь получить оператор case, соответствующий одному из четырех входов в оболочке Bash / Zsh:
- v
- -v
- версия
- - версия
Вы видите, куда я иду, верно?
Я ищу это в приведенном ниже выражении:
case "$1" in
?(--)version|?(-)v)
# do stuff
;;
esac
И я считаю, что это не работает. Из того, что я прочитал,? (Шаблон) - как сопоставить 0 или одно вхождение шаблона.
У меня все получилось, сопоставив регистр
--version|version|-v|v)
Но было бы неплохо иметь что-то более аккуратное, плюс, это опыт обучения!
Я предполагаю, что это, вероятно, из-за того, что я не избегаю вещей должным образом, но я также попытался заключить мою исходную строку в двойные кавычки ("), но я снова не получил вывод.
Любой совет?