我正在处理类似于以下情况的案例陈述:
Case "$myvar" in
[aA]) {
#dostuff
};;
Esac
Case "$myvar" in
[aA]) {
#dostuff
};;
Esac
我的目标是捕获包含a或A的输入字符串的实例,而忽略字符串的其余部分。麻烦的是,如果输入包含其他内容(例如,ab),则我的case语句不会捕获该字符串。我确定问题出在我的正则表达式实现上,但我不知道如何修复它。
答案 0 :(得分:6)
bash中的case语句采用了glob,而不是正则表达式。并且glob匹配整个字符串。因此,要找到字母“A”的任何实例,您可以这样做:
case "$myvar" in
*[aA]*) # do stuff
;;
esac