我正在将命令行参数传递给Shell脚本,并且正在将其作为正则表达式进行比较。以下代码区分大小写:
[[ $1 =~ ^(cat)|(dog)$ ]] && echo "match" || echo "no match"
如何修改将忽略大小写的正则表达式?我将能够通过cAt
,它应该匹配。
我想使用/i
regex标志,因为它忽略大小写。但是如何在shell脚本中使用它?我尝试过[[ $1 =~ /(cat)|(dog)/i ]]
,但是脚本退出时出现语法错误。
StackOverflow has a similar question but it does not answer my inquiry.我想使用test
来比较两个字符串,并且不希望使用shopt -s nocasematch
或grep <expression>
答案 0 :(得分:2)
只需使用
shopt -s nocasematch
在执行命令之前。
或者
shopt -s nocasematch && [[ 'doG' =~ (cat)|(dog) ]] && echo 'hi' || echo 'no match'