web-dev-qa-db-fra.com

Comment passer les résultats de bc à une variable

J'écris un script et j'aimerais passer les résultats de bc dans une variable. J'ai déclaré 2 variables (var1 et var2) et leur ai donné des valeurs. Dans mon script, je souhaite passer les résultats de bc dans une autre variable, par exemple var3, afin que je puisse utiliser var3 pour d’autres calculs. Jusqu'à présent, j'ai été capable d'écrire le résultat dans un fichier qui n'est pas ce que je cherchais et j'ai également réussi à faire écho le résultat dans le terminal, mais je veux juste passer le résultat à une variable à un moment donné de sorte que Je peux travailler avec cette variable.

echo "scale=2;$var1/var2" | bc
15
shaolin

Si vous utilisez bash, vous feriez mieux d'utiliser une chaîne here plutôt qu'un tuyau comme dans:

bc <<< "scale=2;$var1/$var2"

Cela vous fera économiser un sous-shell.

Ensuite, pour stocker le résultat d'une commande, utilisez une substitution de commande:

answer=$(bc <<< "scale=2;$var1/$var2")

Modifier.

Si vous voulez quelque chose d'encore plus cool que bc, voici dc (calculatrice polonaise inversée):

answer=$(dc <<< "2k $var1 $var2/p")
23
gniourf_gniourf

substitution de commande stocke le résultat d'une commande dans une variable.

var3=$(echo "scale=2;$var1/$var2" | bc)
8
Gilles