I am a beginner in shell programming, and it sounds like a very stupid question but I can't seem to be able to increase the variable value by 1. I have looked at tutorialspoint's Unix / Linux Shell Programming tutorial but it only shows how to add together two variables.
I have tried the following methods but they don't work:
i=0 $i=$i+1 # doesn't work: command not found echo "$i" $i='expr $i+1' # doesn't work: command not found echo "$i" $i++ # doesn't work*, command not found echo "$i"
How do I increment the value of a variable by 1??
Using + and - Operators The most simple way to increment/decrement a variable is by using the + and - operators. This method allows you increment/decrement the variable by any value you want.
A program can increment by 1 the value of a variable called c using the increment operator, ++, rather than the expression c=c+1 or c+=1. An increment or decrement operator that is prefixed to (placed before) a variable is referred to as the prefix increment or prefix decrement operator, respectively.
Bash has two special unary operators increment (++) and decrement (–) operators. Increment (++) operator increases the value of a variable by 1 and decrement (–) operator decreases the value of a variable by 1, and return the value.
$1 is the first command-line argument passed to the shell script. Also, know as Positional parameters. For example, $0, $1, $3, $4 and so on.
You can use an arithmetic expansion like so:
i=$((i+1))
or declare i
as an integer variable and use the +=
operator for incrementing its value.
declare -i i=0 i+=1
or use the ((
construct.
((i++))
There are more than one way to increment a variable in bash, but what you tried is not correct.
You can use for example arithmetic expansion:
i=$((i+1))
or only:
((i=i+1))
or:
((i+=1))
or even:
((i++))
Or you can use let:
let "i=i+1"
or only:
let "i+=1"
or even:
let "i++"
See also: http://tldp.org/LDP/abs/html/dblparens.html.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With