Я ищу регулярное выражение для -h
и --help
подумал, что нижеследующее должно соответствовать ему, не ведет себя так, как я ожидаю, что я делаю неправильно?Invalid regex check in BASH match
if [[ "$1" =~ ^((-{1,2})([Hh]$|[Hh][Ee][Ll][Pp])|)$ ]] ; then
echo 'help flagged' ; exit 0
fi
пожалуйста, имейте в виду, что getop используется дальше вниз в коде ...
Ожидаемые результаты, если либо -h или --help (любой случай) поражаются мы эхо и выход
'shopt -s nocasematch; [[$ 1 = @ (- h | --help)]] 'выглядит намного проще. Ваш код будет соответствовать символам -help и '-h' (что может быть намеренно). – chepner
Похоже, что он будет соответствовать '-' и' --', из-за последнего символа канала. – chepner
'@ (.. | ..)' нуждается в extglob, если он еще не включен. –