如何检查字符串是否以bash中的方括号开头

时间:2012-11-21 12:51:58

标签: bash

我需要查看我的ini文件并检查该行是否以括号开头,以确定新配置是否已启动。有没有办法在bash中检查这个?我试过了

line="[test]"

if [[ "$line" =~ [.* ]]; then
    echo "Got it!"
else
    echo "Nothing found"
fi

但它对我不起作用。我认为括号需要以某种方式逃脱,但我找不到任何关于如何的信息。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

为此,您应该反斜杠特殊字符[,所以:

line='[test]'

if [[ $line =~ ^\[ ]]; then
    echo "Got it!"
else
    echo "Nothing found"
fi

<强>说明

  • [是打开REGEX课程的起始角色,例如[0-9]
  • 引用随处可见,但不在bash [[ ]]测试

答案 1 :(得分:0)

使用正则表达式很糟糕!请改为使用bash glob:

if [[ $line = [* ]]; then
    echo 'Got it!'
else
    echo "Nothing found"
fi

希望这有助于更有效地使用bash