Je dois des variables et je veux trouver la valeur de l'une divisée par l'autre. Quelles commandes dois-je utiliser pour ce faire?
Dans le shell bash, entourez les expressions arithmétiques de $(( ... ))
$ echo $(( 7 / 3 ))
2
Bien que je pense que vous êtes limité aux nombres entiers.
echo 5/2 | bc -l
2.50000000000000000000
cette option '-l' dans 'bc' permet des résultats flottants
Le meilleur moyen est d'utiliser "bc", une calculatrice de précision arbitraire.
variable=$(echo "OPTIONS; OPERATIONS" | bc)
ex:
my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc)
où "échelle = 5" est la précision.
man bc
est livré avec plusieurs exemples d'utilisation.
Vous pouvez utiliser awk qui est un utilitaire/langage conçu pour l'extraction de données
par exemple. pour 1,2/3,4
>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941
Je préfère toujours utiliser dc, qui est une calculatrice RPN, donc une session rapide pour diviser 67 par 18 avec une précision de 4 chiffres ressemblerait à
>dc
4k
67
18/p
3.7222
q
>
Evidemment, beaucoup plus disponible: man dc
En bash, si vous n'avez pas besoin de décimales dans votre division, vous pouvez faire:
>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3
Je suppose que par console Linux vous voulez dire Bash.
Si X
et Y
sont vos variables, $(($X / $Y))
renvoie ce que vous demandez.
Exemple de division entière utilisant bash pour diviser $ a par $ b:
echo $((a/b))
Autre chose que vous pourriez faire en utilisant la réponse de raytrace. Vous pouvez utiliser la sortie standard d'un autre appel Shell à l'aide de raccourcis pour effectuer ensuite des calculs. Par exemple, je voulais connaître la taille des 100 premières lignes d'un couple de fichiers. La taille d'origine de wc -c
est en octets, je veux connaître les kilo-octets. Voici ce que j'ai fait:
echo `cat * | head -n 100 | wc -c` / 1024 | bc -l
Vous devriez essayer d'utiliser:
echo "scale=4;$variablename/3"|bc
vous pouvez également utiliser Perl -e
Perl -e 'print 67/8'