누락된 ']' 쉘 오류

누락된 ']' 쉘 오류
while true

do

echo "Enter the number"

read Num

while[$Num -lt 1 || $Num -gt 50]


do

echo "Please enter a new number "

read Num

done

답변1

일부 오류와 경고가 있습니다. 도 이용해주세요shellcheck.net이 경우.

실수:

  1. while와 사이에 공백이 있습니다 [.

  2. [앞뒤에 공백이 있습니다 ].

  3. 아무것도 없기 때문에 재난이 발생합니다 done. 아마도 잊어버렸거나 코드의 절반을 붙여넣었을 수도 있습니다.

  4. [ a ] || [ b ]대신 사용하십시오 [ a || b ].

경고하다:

  1. read -r대신 사용해야 합니다 read.

  2. 변수 이름을 큰따옴표로 묶습니다. 그렇지 않으면 특수 문자가 있으면 작동하지 않습니다.

올바른 코드:

while true
do
    echo "Enter the number"
    read -r Num
    while [ "$Num" -lt 1 ] || [ "$Num" -gt 50 ]
    do
        echo "Please enter a new number "
        read -r Num
    done
done

관련 정보