Синтаксическая ошибка: ожидаемый операнд (маркер ошибки" +")

Я пишу скрипт на bash, и я получаю эту ошибку:

./P4.1: line 10: +: syntax error: operand expected (error token is "+")

и это мой код:

#!/bin/bash
read string
echo $string >| temp
num1= cut -d" " -f1 temp
num2= cut -d" " -f2 temp
num3= cut -d" " -f3 temp
while [ $num1 -gt $num3 ]
do
        echo $num1
        num1=$[$num1+$num2]
done

Что случилось и как я могу это исправить? Спасибо.

3 ответов


сочетание ceving и Томек это:

#!/bin/bash
read num1 num2 num3
while [ $num1 -lt $num3 ]
do
    echo $num1
    num1=$((num1+num2))
done

используйте круглые скобки для численных вычислений:

num1=$((num1 + num2))

#!/bin/bash
read string
echo "${string}" >| temp
num1= cut -d" " -f1 temp
num2= cut -d" " -f2 temp
num3= cut -d" " -f3 temp
while [ "${num1}" -gt "${num3}" ]
do
    echo "${num1}"
    num1=$(expr "${num1}" + 1)
done

кроме того, процитируйте и скрепите переменные. : D