我正在寻找-h
和--help
的正则表达式匹配,认为下面应该匹配它不符合我的预期,我做错了什么?
if [[ "$1" =~ ^((-{1,2})([Hh]$|[Hh][Ee][Ll][Pp])|)$ ]] ; then
echo 'help flagged' ; exit 0
fi
请记住,getop在代码中使用得更远...
预期的结果是如果-h或--help(任何情况)被击中,我们回显并退出
答案 0 :(得分:2)
如果你想要匹配的是-h
或--help
,无论如何,我都会使用
if (shopt -s nocasematch; [[ $1 = @(-h|--help) ]]); then
子shell将casematch
选项中的更改隔离到此测试,扩展模式与-h
或--help
匹配。 (它比[[ $1 = -h || $1 = --help ]]
短。)