Значение переменной увеличивается на 1 (Программирование оболочки )

Я новичок в программировании оболочки, и это звучит как очень глупый вопрос, но я не могу увеличить значение переменной на 1. Я посмотрел на учебник но он показывает только, как добавить вместе 2 переменные

Я пробовал следующие способы, но он не работает

i=0

$i=$i+1 # doesnt work , command not found

echo "$i"

$i='expr $i+1' # doesnt work , command not found

echo "$i"

$i++ # doesnt work , command not found

echo "$i"

как увеличить значение переменной на 1??

5 ответов


вы можете попробовать это :

i=0
i=$((i+1))

есть несколько способов увеличить переменную в bash, но то, что вы пробовали, неверно.

вы можете использовать, например, расширение арифметики:

i=$((i+1))

или только:

((i=i+1))

или:

((i+=1))

или еще:

((i++))

или вы можете использовать let:

let "i=i+1"

или только:

let "i+=1"

или еще:

let "i++"

Смотрите также: http://tldp.org/LDP/abs/html/dblparens.html.


способ использования expr:

i=0
i=`expr $i + 1`

способ использования i++

((i++)); echo $i;

протестировано в gnu bash


вот методы, которые я знаю:

ichramm@NOTPARALLEL ~$ i=10; echo $i;
10
ichramm@NOTPARALLEL ~$ ((i+=1)); echo $i;
11
ichramm@NOTPARALLEL ~$ ((i=i+1)); echo $i;
12
ichramm@NOTPARALLEL ~$ i=`expr $i + 1`; echo $i;
13

обратите внимание на пробелы в последнем примере, также обратите внимание, что это единственный, который использует $i.


можно использовать bc как он также может делать поплавки

var=$(echo "1+2"|bc)