不足している ']' シェルエラー

不足している ']' シェルエラー
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

関連情報