2016-08-31 2 views
0

스크립트를 작성한 후 터미널에 복사하여 붙여 넣어 테스트합니다. 이 경우 문이 응답 -bash: syntax error near unexpected token 'fi'예기치 않은 토큰 'fi'

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

그런 다음 대문자로 변경하고 소문자로 변경하십시오. –

+0

@soFan 와우 나는 멍청이다. 당신이 대답을 게시하면 나는 upvote하고 corret로 선택합니다. –

+3

http://www.shellcheck.net/#는 이러한 오류를 잡는 데 아주 능숙하며 더 이상 사용되지 않는 구문을 사용할 때 제안합니다. – Sundeep

답변

4

then로 변경 Then을 트리거합니다. bash은 대소 문자를 구분합니다.

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

'(()) '내부의 변수에'$'가 필요하지 않습니다. – Inian

+0

이 수정되었습니다. 감사합니다. –

+3

@Inian'((...))'또는'$ ((...)) '내부의 매개 변수에 달러 기호를 사용하면 디버깅을 쉽게 할 수 있습니다. 'DNSPropTimeElap'에 값을 할당하는 것을 잊어 버리면 달러 기호가없는 버전은 자동으로 0으로 확장되고 달러 기호 접두어는 빈 문자열로 확장되고 구문 오류가 트리거됩니다. – chepner