2016-02-05 94 views
-3

我似乎不明白爲什麼我的if語句不起作用。由於某種原因,它不起作用,我真的希望有人能給我建議!爲什麼'if'陳述不起作用?

function startup { 
     #BUDATE bevat het jaartal,maand en dag van nu. 
    BUDATE=`date +%y%m%d` 
     #Maakt directory aan in backup map met datum als naam 
    mkdir backupmap/$BUDATE 
} 

function getDay { 

DOW=$(date +%u) 
BackupType="" 


    case $DOW in 
     '1') 
      #Maandag 
      BackupType="inc" 
      ;; 
     '2') 
      #Dinsdag 
      BackupType="inc" 
      ;; 
     '3') 
      #Woensdag 
      BackupType="inc" 
      ;; 
     '4') 
      #Donderdag 
      BackupType="inc" 
      ;; 
     '5') 
      #Vrijdag 
      BackupType="full" 
      echo "got date" 
      ;; 
     '6') 
      #Zaterdag 
      BackupType="inc" 
      ;; 
     '7') 
      #Zondag 
      BackupType="full" 
      ;; 
    esac 
} 

function copyfull { 
    cd nfs/backup/servers 
    files=(*) 
     for ((x=0; x<${#files[@]}; x++)) 
      do 
     cd ${files[$x]} 
     cd full 
     rsync `ls -tp | grep -v/| head -n 2` ../../../../../backupmap/$BUDATE 
     cd ../../ 
    done 
} 

function copyinc { 
    cd nfs/backup/servers 
    files=(*) 
     for ((x=0; x<${#files[@]}; x++)) 
      do 
     cd ${files[$x]} 
     cd incremental 
     rsync `ls -tp | grep -v/| head -n 4` ../../../../../backupmap/$BUDATE 
     cd ../../ 
    done 
} 

function fullorinc ($BackupType){ 
     if [[ $BackupType=="inc" ]]; then 
     copyinc 
    elif [[ $BackupType=="full" ]]; then 
     copyfull 
    elif [[ $BackupType=="" ]]; then 
     echo "Couldn't get the current date." 
    fi 

} 
startup 
getDay 
+0

不要使用pastebin,只需在這裏放置你的代碼(我爲你解決了這個問題)。 –

+2

Shell函數不需要形式參數。函數fullorinc($ BackupType){'應該給你一個語法錯誤。 – chepner

回答

3

==[[ ... ]]附近的空格不是可選的。沒有它們,你的情況被理解爲

[[ -n "$backupType==" ]] 
+0

這......幾年前,我經歷了地獄,試圖解決一個如果的立場,那就是問題,空間! – Ghost