【发布时间】:2018-05-24 12:05:58
【问题描述】:
我刚开始编写 shell 脚本,在 if 语句中使用 regex 时出现未知操作数错误。我搜索了谷歌,但没有得到任何东西
IP="172.21.1.1"
if [[ "$IP" =~ /d ]] ; then
echo "qqq"
fi
得到错误
sh: =~: unknown operand
Bash 版本为:BusyBox v1.19.3 (2012-01-31 08:57:52 PST) 内置 shell (ash)
【问题讨论】:
-
看起来您正在尝试使用 sh 运行 Bash 脚本(但奇怪的是它没有抱怨
[[)。你如何运行它,shebang 是什么? -
我在 bash 终端上输入这些命令。没有shebang。我刚刚在终端上写了这些行并得到错误
-
所以
/bin/bash是灰烬,我猜这就是问题的原因。看起来像一个不稳定的设置。 ?????? -
Busybox 不支持它包含的任何软件的“高级”功能,我相信您必须构建自己的 BB 版本才能包含真正的 bash。 @Nitesh ,您必须保持最少的外壳功能。阅读原始 Bourne shell 将向您展示可用的逻辑工具类型,它不包括
/dtype reg-ex.,您必须将其指定为[0-9])。您可能会发现ash的功能比sh还要少。祝你好运。 -
@Nitesh:这可能很有用 - stackoverflow.com/questions/21010882/…
标签: shell