La seule calculasortingce que je connaisse est bc
. Je veux append 1
à une variable, et la sortie à une autre variable.
J'ai la variable nextnum
de countr la string dans un file:
nextnum=`grep -o ssortingngtocount file.tpl.php | wc -w`
Disons que la valeur nextnum
est 1
. Lorsqu'il est ajouté avec 1
, il deviendra 2
. Pour calculer, je cours:
rownum=`$nextnum+1 | bc`
mais a eu une erreur:
1+1: command not found
J'ai juste échoué dans la partie de calcul. J'ai essayé de changer l'arrière mais ne fonctionne toujours pas. Je n'ai aucune idée de la façon de calculer les variables et de les transmettre à une autre variable.
La sous-string à l'intérieur du ` `
doit être une command valide elle-même:
rownum=`echo $nextnum+1 | bc`
Mais il est préférable d'utiliser $( )
au lieu de ` `
:
rownum=$(echo $nextnum+1 | bc)
Mais il n'y a pas besoin de bc
, le shell est capable de faire l'arithmétique entière :
rownum=$((nextnum+1))
Ou même plus simple dans bash
et ksh
:
((rownum=nextnum+1))
Vous pouvez également utiliser l'arithmétique embeddede dans bash
rownum=$((nextnum+1))
ce qui serait légèrement plus rapide
Si vous préférez une command standard, vous pouvez utiliser la command let, comme let rownum=$nextnum+1
rownum=$((nextnum+1))
ou ((rownum=nextnum+1))
let rownum=$nextnum+1
Tout à fait raison et compléter les solutions proposées, juste pour mentionner la façon dont il doit être fait dans les time anciens où seulement le Bourne-Shell était disponible, c'est comme ça qu'il aime:
rownum=`expr $nextnum + 1`