La seule calculatrice que je connaisse est bc
. Je veux ajouter 1
à une variable et sortir vers une autre variable.
J'ai obtenu la nextnum
variable en comptant la chaîne dans un fichier:
nextnum=`grep -o stringtocount file.tpl.php | wc -w`
Disons que la nextnum
valeur est 1
. Une fois ajouté avec 1
, il deviendra 2
. Pour calculer, je lance:
rownum=`$nextnum+1 | bc`
mais a obtenu une erreur:
1+1: command not found
Je viens d'échouer dans la partie calcul. J'ai essayé de changer le backtick mais ne fonctionne toujours pas. Je n'ai aucune idée de la façon de calculer les variables et de les exporter vers une autre variable.
shell
arithmetic
bc
calculator
apasajja
la source
la source
Réponses:
La sous-chaîne à l'intérieur du
` `
doit être une commande valide elle-même:Mais il est préférable d'utiliser
$( )
au lieu de` `
:Mais ce n'est pas nécessaire
bc
, le shell est capable de faire de l' arithmétique entière :Ou encore plus simple
bash
etksh
:la source
Vous pouvez également utiliser l'arithmétique intégrée dans bash:
ce qui serait un peu plus rapide.
la source
Absolument juste et complétez les solutions suggérées, juste pour mentionner la façon dont cela devait être fait dans les temps anciens où seul le Bourne-Shell était disponible, c'est ainsi qu'il l'aime:
la source
J'utiliserais (comme cela a été mentionné précédemment)
rownum=$((nextnum+1))
ou((rownum=nextnum+1))
mais si vous préférez une commande standard, vous pouvez utiliser la commande let, commelet rownum=$nextnum+1
la source
let
une «commande standard» est très trompeur.$((…))
est la syntaxe standard (POSIX) alors quelet
c'est une extension ksh (et bash, zsh).