缺少“]”外壳错误

缺少“]”外壳错误
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

相关内容