我刚开始做 shell 脚本并regex在 if 语句中使用时遇到未知的操作数错误。我搜索了谷歌但没有得到任何东西
IP="172.21.1.1"
if [[ "$IP" =~ /d ]] ; then
echo "qqq"
fi
Run Code Online (Sandbox Code Playgroud)
获取错误为
sh: =~: unknown operand
Run Code Online (Sandbox Code Playgroud)
Bash 版本是:BusyBox v1.19.3 (2012-01-31 08:57:52 PST) 内置外壳(ash)
小智 6
发生这种情况是因为=~bash 不存在该运算符。
如您所见,您正在尝试使用正则表达式来比较您的变量。我建议使用该expr命令。下面是一个例子:
IP="172.21.1.1"
if [[ $(expr match "$IP" 'my_regex') != 0 ]]; then echo "qqq"; fi;
Run Code Online (Sandbox Code Playgroud)