找不到Shell Scripting命令错误

时间:2015-06-11 19:18:22

标签: shell

我刚开始使用shell进行编程,想知道我的代码有什么问题?

#!/bin/bash
#DHT11
SCRIPT="/var/www/ErnestynoFailai/scripts/DHT 11 4"
#DHT22
#SCRIPT="/root/to/folder/DHT 22 4"
#AM2302
#SCRIPT="/root/to/folder/DHT 2302 4"
HUMIDITY=`$SCRIPT | grep "Temp" | awk -F " " '{print $7}'`
TEMPRATURE=`$SCRIPT | grep "Temp" | awk -F " " '{print $3}'`
#-a = AND = &&
while [ $HUMIDITY=="" -a $TEMPRATURE=="" ]
do
    $HUMIDITY=`$SCRIPT | grep "Temp" | awk -F " " '{print $7}'`
    $TEMPRATURE=`$SCRIPT | grep "Temp" | awk -F " " '{print $3}'`
done

echo "$HUMIDITY"
echo "$TEMPRATURE"

我得到了:

line 14 or 15 =26: or =: command not found...

2 个答案:

答案 0 :(得分:0)

必须在没有前导$的情况下分配变量:

HUMIDITY=`$SCRIPT | grep "Temp" | awk -F " " '{print $7}'`
TEMPRATURE=`$SCRIPT | grep "Temp" | awk -F " " '{print $3}'`

答案 1 :(得分:0)

有两个问题:

  1. 这些行没有返回任何内容,或者至少返回一个字符串:

    HUMIDITY=`$SCRIPT | grep "Temp" | awk -F " " '{print $7}'`
    TEMPRATURE=`$SCRIPT | grep "Temp" | awk -F " " '{print $3}'`
    
  2. 这导致=: command not found错误。

    1. 你的状况需要

      while [[ $HUMIDITY == "" && $TEMPRATURE == "" ]]
      
    2. 最后,虽然没有造成问题,但TEMPERATURE拼错了,这可能会让你后来感到悲伤。