1

我已经尝试并试图解决这个问题,但由于我对 BASH 的了解有限,我无法搜索,但找不到与我的问题相关的任何内容。

COMMAND_WAIT=$(curl --data "SERIAL_NUMBER="$SERIALNUMBER"" h**p://SERVER/device_check_in.php)

echo $COMMAND

if [ "$COMMAND_WAIT" == "REBOOT" ]; then

echo "Reboot Scheduled"

else

echo "Nothing Found"

fi

我已经包含了“COMMAND_WAIT”的回显命令,这会按预期显示“REBOOT”,但是 if 语句不起作用?

4

2 回答 2

2

尝试回显

echo ">>$COMMAND_WAIT<<"

看看你是否有任何填充。这可能是罪魁祸首。

于 2013-10-11T16:33:54.537 回答
1

我更喜欢使用 [[]] 而不是 [] 因为 [ 是内置的(命令),而 [[ 是关键字(有关详细信息,请参阅 bash 手册)。

  if [[ "$VAR" == "VALUE" ]]
  then
     echo "true";
  else
     echo "false";
  fi

如果它是尾随空格,那么有很多方法可以像这里建议的那样给猫剥皮

于 2013-10-11T16:46:51.883 回答