un simple test variable:reset variable dans un script bash
#!/bin/bash
N=0
ls -l | while read L; do
N=$((N+1))
echo $N
done
echo "total $N"
a couru ensuite sortie:
1
2
3
total 0
i attendu finale N = 3: "un total de 3", mais pourquoi la valeur réinitialiser à 0 après la boucle?
résolu comme un problème de sous-shell connu. consultez http://stackoverflow.com/questions/5006229/why-does-my-bash-counter-reset-after-while-loop – sof
vous pouvez remplacer le $ ((N + 1)) par ((N ++)) avec le même résultat – ata