我正在尝试找出如何测试字符串是否包含模式的方法。我还没有成功。
我尝试使用=〜,但似乎不起作用。
IFS=;
count=0;
lspciarray=();
mylspciarrays=($(lspci -v));
for lspciarrays in "${mylspciarrays[@]}";
do lspciarray[$count]=$lspciarrays;
if [[ lspciarray[$count]=~^[0-9a-f][0-9a-f][:][0-9a-f][0-9a-f][.][0-9a-f]* ]];
then echo ${lspciarray[$count]};
fi;
((count++));
done;
unset IFS;
我期望仅获得包含模式^ [0-9a-f] [0-9a-f] [:] [0-9a-f] [0-9a-f] [。]的行。 [0-9a-f] *,但我仍然从lspci -v
获得了完整的输出答案 0 :(得分:0)
[[ $anything=~$anything ]]]
始终为真,因为=~
不会被视为没有空格的运算符;相反,您正在检查扩展结果是否为空字符串。因为它具有恒定的成分(=~
),所以它始终是非空的,因此操作的结果始终为true。