while 루프에서 예기치 않은 '완료' 표시

while 루프에서 예기치 않은 '완료' 표시

이 bash 스크립트의 구문 오류가 무엇인지 알고 싶습니다.

#!/bin/bash
CURRENT=1594184400
while true do
  NEXT=$((CURRENT+300))
  CURRENT=$NEXT
done

내가 얻은 것

syntax error near unexpected token `done'

실수?

답변1

true두 번째 줄 뒤에 세미콜론을 추가하거나 do다음 줄을 별도로 추가해야 합니다.

다음 중 하나:

#!/bin/bash
CURRENT=1594184400
while true; do     
  NEXT=$((CURRENT+300))
  CURRENT=$NEXT
done

아니면 이거:

#!/bin/bash
CURRENT=1594184400
while true 
do
  NEXT=$((CURRENT+300))
  CURRENT=$NEXT
done

여기에서 쉘 스크립트의 오류를 확인할 수 있습니다.

https://www.shellcheck.net/

bash -n script터미널에서 실행하여 오류를 확인할 수도 있습니다.

관련 정보