Bash案例条件

时间:2012-11-12 04:35:57

标签: regex linux bash shell scripting

我正在处理类似于以下情况的案例陈述:

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

Case "$myvar" in [aA]) { #dostuff };; Esac 我的目标是捕获包含a或A的输入字符串的实例,而忽略字符串的其余部分。麻烦的是,如果输入包含其他内容(例如,ab),则我的case语句不会捕获该字符串。我确定问题出在我的正则表达式实现上,但我不知道如何修复它。

1 个答案:

答案 0 :(得分:6)

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

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