如何检查字符串是否以特定字符串开头>

时间:2014-06-25 18:40:43

标签: linux bash shell

我正在尝试检查字符串是否以特定字符串开头。但是下面的代码不起作用。

//设置@test_date =' 123456'

if [[ $var == "set @test_date =*"  ]]; then
      echo "true"
else
    echo "false"
fi

我发现了类似的问题here,但它对我不起作用

谢谢

2 个答案:

答案 0 :(得分:1)

这应该有效:

 [[ "$var" == "set @test_date ="*  ]] && echo "true" || echo "false"

*需要超出shell的引号才能扩展。

答案 1 :(得分:0)

如果您知道自己在寻找什么,以下内容通常最为强大:

[[ "${var:0:len_of_sub}" == "$substring" ]] && echo "${var:0:len_of_sub} matches $substring"

此外,您可以在此处调整起始索引0,以便在任何位置开始匹配。有很多方法可以做到这一点,所以你应该考虑所有的答案。另一个最爱(仅适用于复合命令[[):

[[ "$var" =~  "$substring" ]]

这将匹配$var

内的任何位置的子字符串