比较字符串与通配符 - 忽略大小写

时间:2015-02-17 14:50:19

标签: bash

我基本上想做的是

if [[ $str == A* ]]; then 
# ...

但我想忽略这个案例,所以两个例子都应该匹配:

str=Abc
str=abc

1 个答案:

答案 0 :(得分:3)

您有几个选择。

手动匹配:

if [[ $str == [aA]* ]]; then

使用nocasematch

shopt -s nocasematch
if [[ $str == A* ]]; then

正如Tom Fenech用bash 4+指出的那样(我相信)你也可以使用新的案例修改参数扩展:

# For lower-casing
if [[ ${str,,} = a* ]]; then

# For upper-casing
if [[ ${str^^} = A* ]]; then