当我运行bash脚本时,出现错误:意外标记'done'附近的语法错误。

我不知道为什么。 我对编程有点陌生,我尝试了很多谷歌搜索,但确实可以完成工作。 我希望你们中的一个可以看到出了什么问题。

该代码用于树莓派。 它必须读取一个nfc卡,并且当该卡的ID位于allowed_tags.txt中时,它应该将gpio 0写入1。

编码:

#!/bin/bash

FILENAME='/home/pi/door_basher/allowed_tags.txt'
LOGNAME='/home/pi/door_basher/access_log.txt'

gpio mode 0 out
gpio write 0 0


while true; do 
   TIMESTAMP=`date`
   NFC=$(nfc-poll 2>&1 |grep "UID")

   if [ $? -eq 0 ] ; then
       CARDID=$(echo $NFC|cut -f2 -d ":"|sed  -e 's/[ \t]//g')
       NAME=$(egrep "^$CARDID" $FILENAME) 
       if [ $? -eq 0 ] ; then
          NAME=$(egrep "^$CARDID" $FILENAME|awk -F $'\t' '{ print $2;}') 
          echo "$TIMESTAMP ALLOW $NAME ($CARDID)" | tee -a $LOGNAME 
          gpio write 0 1
          sleep 10
          gpio write 0 0
       else 
          echo "$TIMESTAMP DENIED $NAME ($CARDID)" | tee -a $LOGNAME
          sleep 2
       fi
    fi
done

  ask by user3554355 translate from so

本文未有回复,本站智能推荐: