TAGS :Viewed: 1 - Published at: a few seconds ago

[ Syntax error: operand expected (error token is "+") ]

I'm writing a script in bash and I get this error:

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

And this is my code:

#!/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

What's wrong and how do I fix it? Thanks.

Answer 1


Combination of ceving and Tomek's:

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

Answer 2


Use round parenthesis for numeric computations:

num1=$((num1 + num2))

Answer 3


#!/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

also, quote and brace your variables. :D