web-dev-qa-db-fra.com

Incrémenter la valeur de la variable de 1 (programmation Shell)

Je suis un débutant en programmation Shell et cela ressemble à une question très stupide, mais je ne peux pas sembler pouvoir augmenter la valeur de la variable de 1. J'ai examiné tutorial mais cela montre seulement comment additionner 2 variables

J'ai essayé les méthodes suivantes mais ça ne marche pas

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"

Comment puis-je incrémenter la valeur d'une variable de 1 ??

8
Computernerd

Vous pouvez essayer ceci:

i=0
i=$((i+1))
27
Gabriel L.

Il existe plus d’une façon d’incrémenter une variable dans bash, mais ce que vous avez essayé n’est pas correct.

Vous pouvez utiliser par exemple le développement arithmétique:

i=$((i+1))

ou seulement:

((i=i+1))

ou:

((i+=1))

ou même:

((i++))

Ou vous pouvez utiliser laisser:

let "i=i+1"

ou seulement:

let "i+=1"

ou même:

let "i++"

Voir aussi: http://tldp.org/LDP/abs/html/dblparens.html .

5
zahid

La façon d'utiliser expr:

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

la façon d'utiliser i ++

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

Testé en gnou bash

4
BMW

vous pouvez utiliser bc car il peut aussi faire des float

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

Ce sont les méthodes que je connais:

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

Notez les espaces dans le dernier exemple, notez également que c'est le seul qui utilise $i.

0
Juan Ramirez