Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

question bash

4 réponses
Avatar
dave
Bonjour

Je débute sous bash (depuis ce midi).
Dans un petit script :

echo "montant total tirelire : "
read tirelire
programme -p $tirelire

J'aimerai entrer la valeur en euros mais "programme" demande des cents.
Est-il possible de faire quelque chose dans ce genre : ?

programme -p $tirelire*100

de cette amnière j'aurai la possibilité d'indiquer le montant en euro qui
serait automatiquement converti en cents ?

Merci

4 réponses

Avatar
coolix
dave wrote:

Est-il possible de faire quelque chose dans ce genre : ?

programme -p $tirelire*100



Oui, sauf que bash n'a pas connaissance des opérateurs arithmétiques.
Pour les calculs, on utilise la commande `expr`. De plus, en bash, la
sortie d'une commande peut être utilisée comme valeur avec la syntaxe
suivante: $(commande)

Ce qui, dans ton cas préçis, nous donne:
programme -p $(expr $tirelire * 100)
Avatar
Nicolas George
coolix wrote in message <4a199dc9$0$9218$:
Oui, sauf que bash n'a pas connaissance des opérateurs arithmétiques.



Bien sûr que si : bash implémente au moins le langage shell standard, qui
comporte la notation $(( ... )).
Avatar
Olivier Miakinen
Le 24/05/2009 21:19, coolix répondait à dave :

Est-il possible de faire quelque chose dans ce genre : ?

programme -p $tirelire*100



Oui, sauf que bash n'a pas connaissance des opérateurs arithmétiques.
Pour les calculs, on utilise la commande `expr`. De plus, en bash, la
sortie d'une commande peut être utilisée comme valeur avec la syntaxe
suivante: $(commande)

Ce qui, dans ton cas préçis, nous donne:
programme -p $(expr $tirelire * 100)



Cela dit, $tirelire étant un entier, sa multiplication par 100 se fait
tout simplement en concaténant deux 0 :

programme -p "${tirelire}00"

--
Olivier Miakinen
Avatar
Alain Ketterlin
Olivier Miakinen <om+ writes:

programme -p $tirelire*100






[...]
Ce qui, dans ton cas préçis, nous donne:
programme -p $(expr $tirelire * 100)



Cela dit, $tirelire étant un entier, sa multiplication par 100 se fa it
tout simplement en concaténant deux 0 :

programme -p "${tirelire}00"



Si $tirelire est en hexa (0x...) ou en octal (0...), seule $((t*100))
donnera le bon résultat.

Juste au cas où...

-- Alain.