我需要检查我的 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 [[ ]]测试中不需要为此使用正则表达式太糟糕了!请改用bashglob:
if [[ $line = [* ]]; then
echo 'Got it!'
else
echo "Nothing found"
fi
希望这有助于bash更有效地使用。