我需要浏览我的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
。