Résolu Affecter une variable à un nombre décimal - Fichier Shell

  • Auteur de la discussion Ilyusis
  • Date de début

Ilyusis

Nouveau membre
Bonjour,

Je cherche à affecter une variable dans un fichier .sh (que je fais tourner avec Cygwin sous Windows) à un calcul dont le résultat sera un nombre décimal.
Par exemple:
Var=0.002+$ppscas avec $ppscas une variable décimale elle aussi.
Les fichiers shell ne pouvant pas gérer de décimale, j'ai cherché à utiliser la commande bc. Le problème est qu'elle n'est pas reconnue dans mon terminal Cygwin, même en l'ayant installée via Gnuwin. Je ne sais donc pas comment l’appeler dans mon shell.
J'ai vu que la commande "awk" est déjà implémentée dans Cygwin mais je n'arrive pas à trouver la syntaxe pour affecter une variable à un calcul.

Pourriez-vous m'éclairer sur la question?
Merci d'avance :)
 

jacktara

Modérateur
Staff
Meilleure réponse
Salut,

Lui il a l'air d'avoir trouvé plusieurs solutions à ce problème.



:merci:
 

AccroPC2

Fou du PC
Staff
En effet ce n'est pas les solutions qui manquent. Le plus simple est probablement d'appeler python ou perl. C'est étrange que tu n'aies pas bc mais bon, faire du shell dans windows c'est un peu faire du powershell sous linux :)

Bye
 

jacktara

Modérateur
Staff
Mais on a pas acces a bash now sous windows?
Et du coup à bc?

T'a le bat sinon, quelqu'un a partagé un logiciel sympas l'autre jour pour faire du bat easy, si je le retrouve je te fais passer l'url. :merci:
 

AccroPC2

Fou du PC
Staff
Sous windows 10 avec le mode dev, on a une distrib Debian.
 

jacktara

Modérateur
Staff
Stylé, merci. :merci:

Powerbat pour le programme dont je parlais. ;)
 

Ilyusis

Nouveau membre
Bonjour,

Merci pour vos réponses :)

Malheureusement j'en ai besoin pour un stage en entreprise et l'accès/installation de nouveaux logiciels peut prendre du temps...

Si je veux utiliser awk, quelle syntaxe me permet d'affecter un calcul à une variable?
awk -v v1="0.002+$ppscas"
ne semble pas marcher...(affiche l'aide de awk dans la console Cygwin...)

Ou alors, comment faire pour avoir la commande bc dans Cygwin? J'ai copié le bc.exe dans le dossier de travail mais Cygwin ne le reconnait pas...

Désolé si mes questions semblent naïves mais je débute en programmation, encore plus sous shell ^^
 

jacktara

Modérateur
Staff
Re,

http://math-blog.com/2012/07/23/floating-point-arithmetic-in-the-bourne-again-shell-bash/

Y'a encore pas mal d’exemples là. :merci:
Pour moi faut que t'essaie de faire marcher un des langage proposé dans les différents exemples, style perl ou ruby. Et tu l'utilises pour faire ce que tu à besoin de faire. ;)
 

Ilyusis

Nouveau membre
Merci de votre aide, j'ai finalement trouvé la syntaxe adéquate sur awk :
var=$(awk -v v="$ppscas" 'BEGIN {print v+0.002}')

Thanks !
 

jacktara

Modérateur
Staff
Re,

Tant mieux. :merci:
Si tu a d'autre problèmes n'hésite pas. ;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 055
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut