Bash 字符串比较在 BusyBox 上不起作用

Bash string comparison not working on BusyBox

我不明白为什么这个 bash 脚本不能在内置的 BusyBox v1.29.3 () 上运行 shell (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  

如果我 "force" 带有变量的字符串,它可以正常工作。(#MODE) 我想 cat returned 变量中有一些字符创建了不同的字符串。

我总是 "no sta mode" 所以 if 不会 return 为真。 etc/config/wireless中的选项模式与要比较的字符串相同。

找不到我错过了什么..?

以下问题给出了一个带前导零的字符串。

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

以下给出相同的结果,没有前导空格。

MODE="$(cat /etc/config/wireless | sed -n 's/\s*\(option mode.*\)//p'"