130 votes

Multiplication sur le terminal de ligne de commande

J'utilise un terminal série pour entrer dans notre expérience de laboratoire. J'ai trouvé que l'utilisation

$ echo "5X5"

renvoie juste une chaîne de "5X5". Existe-t-il une commande pour exécuter une opération de multiplication ?

49voto

tvm Points 1045

Pour des mathématiques plus avancées et précises, pensez à utiliser bc(1).

echo "3 * 2.19" | bc -l 
6.57

21voto

CodeGnome Points 25402

Méthodes internes

Bash prend en charge l'expansion arithmétique avec $(( expression )). Par exemple :

$ echo $(( 5 * 5 ))
25

Méthodes externes

Un certain nombre de services publics fournissent des données arithmétiques, y compris bc et expr.

$ echo '5 * 5' | /usr/bin/bc
25

$ /usr/bin/expr 5 \* 5
25

18voto

William Pursell Points 56211

La solution classique est :

 expr 5 \* 5

expr ne fonctionnera qu'avec des opérandes entiers. Une autre option intéressante est :

 echo 5 5\*p | dc

dc peut être fait pour fonctionner avec des opérandes non entiers.

9voto

Moreaki Points 166

Une simple fonction shell (pas besoin de sed) devrait faire l'affaire de l'interprétation de '5X5'

$ function calc { bc -l <<< ${@//[xX]/*}; };
$ calc 5X5
25
$ calc 5x5
25
$ calc '5*5'
25

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X