2012-11-12 45 views
0

我正在使用类似于以下的案例声明: Bash案例条件

Case "$myvar" in 
[aA]) { 
    #dostuff 
};; 
Esac 

我的目标是捕获包含a或A的输入字符串的实例,忽略字符串的其余部分。麻烦的是,给定包含其他内容的输入(例如,ab),字符串不会被我的case语句捕获。我相信这个问题是与我的正则表达式实现,但我不知道如何解决它。

回答

6

bash中的case语句使用glob而不是正则表达式。 glob匹配整个字符串。因此,要找到字母“A”的任何实例,您应该这样做:

case "$myvar" in 
*[aA]*) # do stuff 
    ;; 
esac 
+0

+1请注意,操作中没有花括号。 – tripleee