DPHPV =/usr/local/nginx/conf/php81-remi.conf;
我无法找出如何匹配包含任何2位数字的字符串:
if [[ "$DPHPV" =~ *"php[:digit:][:digit:]-remi.conf"* ]]
您没有在这里使用正确的正则表达式,因为*
是正则表达式中的量词,而不是任何文本的占位符。
实际上,您不需要正则表达式,您可以使用像
这样的glob模式。if [[ "$DPHPV" == *php[[:digit:]][[:digit:]]-remi.conf ]]
注意
==
-启用全局匹配*php[[:digit:]][[:digit:]]-remi.conf
-用*
匹配任何文本,然后匹配php
,然后匹配两位数字(注意POSIX字符类必须在括号表达式中使用),然后在字符串末尾匹配-rem.conf
。查看在线演示:
#!/bin/bash
DPHPV='/usr/local/nginx/conf/php81-remi.conf'
if [[ "$DPHPV" == *php[[:digit:]][[:digit:]]-remi.conf ]]; then
echo yes;
else
echo no;
fi
输出:yes
.