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



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

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

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

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

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

解释

  • [是打开 REGEX 类的起始字符,例如[0-9]
  • 到处都需要报价,但在测试bash [[ ]]不需要

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

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

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

相关内容

  • 没有找到相关文章

最新更新