尝试使用正则表达式在我的 Bash 脚本中获取 Symfony 版本号

尝试使用正则表达式在我的 Bash 脚本中获取 Symfony 版本号

当我bin/console --version从终端调用 Symfony 项目时,我Symfony 4.4.3 (env: dev, debug: true) 喜欢进行匹配来验证命令的结果是否确实与预期模式匹配。

我有这个模式:https://regex101.com/r/n2hBR8/1

我在 Bash 脚本中尝试了几件事,但无法让它工作:

#symfonyVersionRegex="Symfony\s\d{1}.*"
#symfonyVersionRegex="^Symfony\s\d{1}.*$"
symfonyVersionRegex="^Symfony\s\d.*$"

symfonyVersionRaw=`bin/console --version`

if [[ symfonyVersionRaw =~ $symfonyVersionRegex ]]; then
    echo Version number found
else
    echo Version number NOT found
fi

当我回显 symfonyVersionRaw 时,我得到了预期的版本字符串,因此可以工作,但无论我尝试什么,我总是得到否定结果(“未找到版本号”)。

答案1

首先,我认为你有一个错误,你没有把 放在$前面symfonyVersionRaw

然后你应该将数字与[0-9]或匹配[[:digit:]]

看看这里:如何匹配正则表达式中的数字

相关内容