Chinaunix

标题: syntax error: "then" unexpected (expecting "done") [打印本页]

作者: 791605975    时间: 2015-09-21 14:23
标题: syntax error: "then" unexpected (expecting "done")
  1. #!/bin/bash

  2. while true
  3. do
  4. SPACE=`df|grep /dev/sda |awk '{print $5}'|sed 's/%//'`
  5.     if[ $SPACE -ge 80 ]
  6.     then
  7.         YEAR=`ls -l /mnt/share/data/vdr/data | tail +1 |awk '{print $9}'|awk '{print substr($0,1,4)}'`
  8.         MONTH=`ls -l /mnt/share/data/vdr/data |tail +1 |awk '{print $9}'|awk '{print substr($0,5,2)}'`
  9.         DAY=`ls -l /mnt/share/data/vdr/data | tail +1 | awk '{print $9}'|awk '{print substr($0,7,2)}'`
  10.         HOUR=00
  11.         MINUTE=00
  12.         SECOND=00

  13.         value1=-
  14.         value2=:
  15.         value3=" "
  16.         value=${YEAR}${value1}${MONTH}${value1}${DAY}${value3}${HOUR}${value2}${MINUTE}${value2}${SECOND}
  17.         echo $value
  18.         HAHA=`date -d "${value}" +%s`
  19.         echo $HAHA
  20.        
  21.         for file in /mnt/share/data/vdr/data/*
  22.         do
  23.             echo $file >> /mnt/share/data/vdr/data/file.txt               
  24.             thr_time=259200
  25.                
  26.             YEAR1=`awk '{print substr($0,26,4)}' file.txt`
  27.             MONTH1=`awk '{print substr($0,30,2)}' file.txt`
  28.             DAY1=`awk '{print substr($0,32,2)}' file.txt`
  29.             HOUR1=00
  30.             MINUTE1=00
  31.             SECOND1=00
  32.             value11=-
  33.             value12=:
  34.             value13=" "
  35.             value_=${YEAR1}${value11}${MONTH1}${value11}${DAY1}${value13}${HOUR1}${value12}${MINUTE1}${value12}${SECOND1}
  36.             HEHE=`date -d "${value_}" +%s`

  37.             RES=$((HAHA-HEHE))
  38.                
  39.             if [ $RES -ge $thr_time ]
  40.             then
  41.                 rm -rf $file
  42.             else
  43.                 echo safe_data
  44.             fi
  45.             rm file.txt
  46.             done
  47.             sleep 600
  48.             done
  49.     fi
  50. done
  51. exit 0
复制代码
源码
运行的时候
  1. line 7: syntax error: "then" unexpected (expecting "done")
复制代码
不明哪出了问题。。。
作者: haooooaaa    时间: 2015-09-21 14:29
    if[ $SPACE -ge 80 ]

没空格?
作者: jason680    时间: 2015-09-21 14:34
本帖最后由 jason680 于 2015-09-21 14:35 编辑

回复 1# 791605975

卜一卦....
你与shell不合

没空格,缩进....出问题

if [ ... ]


        done
        sleep 600
        done



作者: 791605975    时间: 2015-09-21 14:35
  1. line 51: syntax error: "done" unexpected (expecting "fi")
复制代码
改了第七行的if后面的空格,又有新的问题了
回复 2# haooooaaa


   
作者: 791605975    时间: 2015-09-21 14:37
回复 3# jason680


   
作者: haooooaaa    时间: 2015-09-21 14:38
有 三个 done ?
作者: 791605975    时间: 2015-09-21 14:42
找到问题了。。。多了个done。。。谢谢大家 回复 6# haooooaaa


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2