2016-08-31 20 views
0

私はスクリプトを作成しています。これをコピーして端末に貼り付けてテストしています。この文は、thenに変更Then-bash: syntax error near unexpected token 'fi'予期せぬトークン 'fi'

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

次に、大文字で小文字に変更します。 –

+0

@soFanうわー、私は騒ぎです。あなたが回答を投稿した場合は、私はupvoteして、 –

+3

http://www.shellcheck.net/#はこれらのエラーを捕捉するのには大変優れており、非推奨の構文を使用するときには示唆を与えています。 – Sundeep

答えて

4

この応答を引き起こす場合。 bashは大文字と小文字が区別されます。

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

'(())'の変数の '$'は不要です。 – Inian

+0

が修正されました。 –

+3

@Inian '((...))'や '$((...))'の中のパラメータにドル記号を使うと、デバッグが簡単になります。 'DNSPropTimeElap'に値を代入することを忘れると、ドル記号のないバージョンは0に自動的に展開され、ドル記号の接頭バージョンは空の文字列に展開され、構文エラーが発生します。 – chepner

関連する問題