在我的脚本中,我接受一个字符串,遍历每个字符并将其传递给一个函数,该函数使用一个switch case来检查它是什么字符并相应地采取行动。它工作正常,但它似乎无法匹配空白字符。我可以使用什么表示法?
注意:只有一个字符会被传递到这个函数中,所以我只需要弄清楚这个单个字符是否是空白字符。
代码片段
" ")
doSomething
;;
"a")
doSomethingElse
;;
"b")
doSomethingElse
;;
"c")
doSomethingElse
;;
也试过
*\ * )
tap 388 1127
;;
谢谢!
答案 0 :(得分:10)
在BASH中,您可以使用POSIX character classes将空格与[[:space:]]
匹配。
case $var in
[[:space:]])
doSomething
;;
esac
[[:space:]]
将匹配任何空格字符。
字符类的测试也可以在双括号内完成:
[[ $var == [[:space:]] ]] && doSomething