2016-08-31 117 views
0

我正在編寫腳本,然後通過複製並粘貼到終端中對其進行測試。這個if語句觸發此響應-bash: syntax error near unexpected token 'fi'意外的令牌'fi'

if (($DNSPropTimeElap < 61)); Then 
    sleep $((60 - $DNSPropTimeElap)) 
fi 
+6

然後是大寫,將其更改爲小寫。 –

+0

@soFan哇我是一個noob。如果你發佈了答案,我會贊成並選擇爲對答。 –

+3

http://www.shellcheck.net/#非常擅長捕捉這些錯誤,並且在使用不建議使用的語法時也給出了建議 – Sundeep

回答

4

變化Thenthen。請記住,bash區分大小寫。

if ((DNSPropTimeElap < 61)); then 
    sleep $((60 - $DNSPropTimeElap)); 
fi 
+1

'(())'內的變量''不需要 – Inian

+0

corrected.Thanks。 –

+3

@Inian儘管在'((...))'或'$((...))'內使用美元符號可以使調試更容易。如果您忘記將值分配給'DNSPropTimeElap',那麼無美元符號的版本將默默擴展爲0,而以美元符號爲前綴的版本將展開爲空字符串並觸發語法錯誤。 – chepner