Bash字符串比较不适用于BusyBox

时间:2019-05-02 12:16:20

标签: bash string-comparison busybox

我不明白为什么此bash脚本不能在BusyBox v1.29.3()内置外壳(ash)上运行。

代码如下:

#!/bin/sh

MODE=$(cat /etc/config/wireless | grep 'option mode') #not working
#MODE="option mode 'sta'" ==> this works
echo $MODE

MCHECK="option mode 'sta'"

echo $MCHECK

if [ "$MCHECK" = "$MODE" ];then
   ping -c3 www.google.com > /dev/null
   a=$?
   echo $a
   if [ $a -eq 0 ];then
      echo "ok"
   else
      echo "fail"
   fi
else
    echo "no sta mode"
fi  

如果我用变量“强制”字符串,则它可以正常工作。(#MODE) 我想象在cat返回的变量中有些字符会创建不同的字符串。

我总是得到“ no sta mode”,因此if不会返回true。 etc / config / wireless中的选项模式与要比较的字符串相同。

找不到我想念的..?

1 个答案:

答案 0 :(得分:0)

问题出在下面,给出了一个带有前导零的字符串。

.pipe(nunjucksRender({
    path: ["yourPath"],
    title: "yourTitle",
    description: "yourDescriptionHere"
}))
Rest of the code...

跟随给出的结果相同,但不带空格。

MODE="$(cat /etc/config/wireless | grep 'option mode')"