justsink
justsink
发布于 3周前

Linux shell判断字符串是否以某些字符开头

==比较

使用bash检查字符串是否以某些字符开头可以使用==比较

[[ $str == h* ]]

示例

str="hello"
if [[ $str == h* ]];
then
 echo 'yes'
fi

有两个地方需要注意:

  1. h*不需要使用引号括起来,使用引号括起来是直接做相等比较
  2. 比较语句使用双中括号括起来,而不是使用单中括号

=~正则比较

如果使用Bash的正则

str="hello"
if [[ "$str" =~ ^he.* ]]; then
    echo "yes"
fi

使用正则匹配字符串的开头字符需要注意:

  • he*:不要使用he*,这里的*号表示e字符0到多个,即h,以及heeee都是测试通过的
  • he.*:这里只允许包含he的字符串通过测试
  • ^he.*:这个表示是以he开头的字符串通过检测