【发布时间】:2017-01-02 22:19:00
【问题描述】:
这是我第一次使用 stackoverflow。我目前面临一个问题,并在此处分享详细信息。
我目前正在构建一个 POS 自动化脚本。 POS 终端有 Shell Busybox ash 。这就是为什么我不能使用基本命令,因为它们的行为不一样。 以下是查询:
假设 [[ $I == $N$A ]] - 此比较用于精确匹配,其中 $I 是较大的字符串,$N$A 包含 $I 的子字符串。 我已经使用 [ -z ${I##$N$A* ] 和 [ “$I” == “$N$A”* ] 语法来比较子字符串,但它失败并且表现不应该。
如果有人对此有任何建议,请指导。 请让我知道是否有任何用于busybox ash 的在线控制台,我可以在其中测试一些脚本。
已添加示例 -27-08-16
假设 -
派生值$I = "Credit.saleApproved" 的脚本
我正在传递 $N= "Credit" and $A= ".sale"
的值
所以基本上 echo $N$A 是 echo $I 的 substring
我写这个伪逻辑是为了让你更好地理解
If [[ $I == $N$A ]]
then
echo "sale is complete"
else
echo "sale is declined"
fi
我只需要 -->
1 . input : $I = Credit.saleApproved
$N$A = Credit.sale
Output :sale is complete
2.input : $I = Credit.sApproved
$N$A = Credit.sale
Output :sale is Declined
【问题讨论】:
-
您是要进行完全匹配、以开头匹配还是在灰中包含匹配?
-
是的。我正在寻找一个精确的子字符串匹配。
-
通配符在 ash shell case-switch 中工作 unix.stackexchange.com/a/370893/38213 我已经在 busybox 中运行过