检查给定字符是否为空格

时间:2014-02-07 08:56:39

标签: bash

在我的脚本中,我接受一个字符串,遍历每个字符并将其传递给一个函数,该函数使用一个switch case来检查它是什么字符并相应地采取行动。它工作正常,但它似乎无法匹配空白字符。我可以使用什么表示法?

注意:只有一个字符会被传递到这个函数中,所以我只需要弄清楚这个单个字符是否是空白字符。

代码片段

    " ")
        doSomething
        ;;
    "a")
        doSomethingElse
        ;;
    "b")
        doSomethingElse
        ;;
    "c")
        doSomethingElse
        ;;

也试过

    *\ * )
        tap 388 1127
        ;;

谢谢!

1 个答案:

答案 0 :(得分:10)

在BASH中,您可以使用POSIX character classes将空格与[[:space:]]匹配。

case $var in
    [[:space:]])
        doSomething
        ;;
esac

[[:space:]]将匹配任何空格字符。

字符类的测试也可以在双括号内完成:

[[ $var == [[:space:]] ]] && doSomething