我需要检查我的 ini 文件并检查该行是否以括号开头,以确定新配置是否已启动。有没有办法在bash中检查这个?我试过
line="[test]"
if [[ "$line" =~ [.* ]]; then
echo "Got it!"
else
echo "Nothing found"
fi
但这对我不起作用。我认为括号需要以某种方式转义,但我找不到任何关于如何转义的信息。任何帮助都感激不尽。
我需要检查我的 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
更有效地使用。