Shell: calcul numérique sur variables
Fermé
nicnictout
Messages postés
11
Date d'inscription
vendredi 25 septembre 2009
Statut
Membre
Dernière intervention
8 janvier 2014
-
25 sept. 2009 à 18:38
nicnictout Messages postés 11 Date d'inscription vendredi 25 septembre 2009 Statut Membre Dernière intervention 8 janvier 2014 - 15 oct. 2009 à 17:16
nicnictout Messages postés 11 Date d'inscription vendredi 25 septembre 2009 Statut Membre Dernière intervention 8 janvier 2014 - 15 oct. 2009 à 17:16
A voir également:
- Script shell calcul moyenne
- Calcul moyenne excel - Guide
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
6 réponses
spacm
Messages postés
141
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
30 août 2016
30
25 sept. 2009 à 19:03
25 sept. 2009 à 19:03
Peut être une piste?
var1=/tmp/var1
seuil=50/100
CMD="free | grep "buffers/cache""
(ssh client $CMD) > $var1
var2=`cat $var1 | awk '{print $4}' `
var3= expr $var2 * $seuil
var1=/tmp/var1
seuil=50/100
CMD="free | grep "buffers/cache""
(ssh client $CMD) > $var1
var2=`cat $var1 | awk '{print $4}' `
var3= expr $var2 * $seuil
nicnictout
Messages postés
11
Date d'inscription
vendredi 25 septembre 2009
Statut
Membre
Dernière intervention
8 janvier 2014
28 sept. 2009 à 11:16
28 sept. 2009 à 11:16
Bonjour,
il s'avère que cela ne fonctionne toujours pas. Mais je crois que le problème n'est pas lié a la syntaxe de la cmd, lorsque j'essaie de taper directement :
expr /tmp/ovo_al_fs.tmp2*0.9
/tmp/ovo_al_fs.tmp2*0.9
J'ai essayé la même comd avec let:
let /tmp/ovo_al_fs.tmp2*0.9
-bash: let: /tmp/ovo_al_fs.tmp2*0.9: syntax error: operand expected (error token is "/tmp/ovo_al_fs.tmp2*0.9")
Je crois que je vais finir par le dev en perl mon script... foutue gestion des variables :(
il s'avère que cela ne fonctionne toujours pas. Mais je crois que le problème n'est pas lié a la syntaxe de la cmd, lorsque j'essaie de taper directement :
expr /tmp/ovo_al_fs.tmp2*0.9
/tmp/ovo_al_fs.tmp2*0.9
J'ai essayé la même comd avec let:
let /tmp/ovo_al_fs.tmp2*0.9
-bash: let: /tmp/ovo_al_fs.tmp2*0.9: syntax error: operand expected (error token is "/tmp/ovo_al_fs.tmp2*0.9")
Je crois que je vais finir par le dev en perl mon script... foutue gestion des variables :(
nicnictout
Messages postés
11
Date d'inscription
vendredi 25 septembre 2009
Statut
Membre
Dernière intervention
8 janvier 2014
28 sept. 2009 à 11:41
28 sept. 2009 à 11:41
Bonjour,
apparemment mon précédent post n'est pas passé.
Je n'arrive toujours pas a faire fonctionner mon script, lorsque j'utilise ta méthode j'ai les erreurs suivantes:
tmpfile3='expr $tmpfile2 * $seuil'
cat: /tmp/seuil: ne peut pas s'ouvrir [Aucun fichier ou répertoire de ce type]
Pourtant le fichier existe et il est bien accessible en lecture. J'ai essayé de remplacer la variable $seuil par sa valeur numérique directement:
tmpfile3='expr $tmpfile2 * 0,9'
Mais la encore il me dit que le fichier n'existe pas, et je sais pas comment lui dire que c'est la valeur à utiliser.
D'avance merci pour votre aide.
apparemment mon précédent post n'est pas passé.
Je n'arrive toujours pas a faire fonctionner mon script, lorsque j'utilise ta méthode j'ai les erreurs suivantes:
tmpfile3='expr $tmpfile2 * $seuil'
cat: /tmp/seuil: ne peut pas s'ouvrir [Aucun fichier ou répertoire de ce type]
Pourtant le fichier existe et il est bien accessible en lecture. J'ai essayé de remplacer la variable $seuil par sa valeur numérique directement:
tmpfile3='expr $tmpfile2 * 0,9'
Mais la encore il me dit que le fichier n'existe pas, et je sais pas comment lui dire que c'est la valeur à utiliser.
D'avance merci pour votre aide.
Bonjour,
apparemment mon précédent post n'est pas passé.
Je n'arrive toujours pas a faire fonctionner mon script, lorsque j'utilise ta méthode j'ai les erreurs suivantes:
tmpfile3='expr $tmpfile2 * $seuil'
cat: /tmp/seuil: ne peut pas s'ouvrir [Aucun fichier ou répertoire de ce type]
Pourtant le fichier existe et il est bien accessible en lecture. J'ai essayé de remplacer la variable $seuil par sa valeur numérique directement:
tmpfile3='expr $tmpfile2 * 0,9'
Mais la encore il me dit que le fichier n'existe pas, et je sais pas comment lui dire que c'est la valeur à utiliser.
D'avance merci pour votre aide.
apparemment mon précédent post n'est pas passé.
Je n'arrive toujours pas a faire fonctionner mon script, lorsque j'utilise ta méthode j'ai les erreurs suivantes:
tmpfile3='expr $tmpfile2 * $seuil'
cat: /tmp/seuil: ne peut pas s'ouvrir [Aucun fichier ou répertoire de ce type]
Pourtant le fichier existe et il est bien accessible en lecture. J'ai essayé de remplacer la variable $seuil par sa valeur numérique directement:
tmpfile3='expr $tmpfile2 * 0,9'
Mais la encore il me dit que le fichier n'existe pas, et je sais pas comment lui dire que c'est la valeur à utiliser.
D'avance merci pour votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
28 sept. 2009 à 12:56
28 sept. 2009 à 12:56
Salut,
ssh$ A=$(free | grep "buffers/cache") ssh$ B="50 / 100" ssh$ echo ${A##* } 208012 ssh$ C=$(expr ${A##* } \* $B) ssh$ echo $C 104006 ssh$;-))
nicnictout
Messages postés
11
Date d'inscription
vendredi 25 septembre 2009
Statut
Membre
Dernière intervention
8 janvier 2014
15 oct. 2009 à 17:16
15 oct. 2009 à 17:16
Bonjour,
j'ai trouvé la solution à mon pb.
plutôt que de faire un calcul sur des flottant, je suis passé par le prédicat suivant:
si x = 3/4y alors 4x=3y
Du coup plus de problème et tout fonctionne parfaitement.
Merci quand même.
PS: même avec ta solution le résultat de la commande ne fonctionnait pas
j'ai trouvé la solution à mon pb.
plutôt que de faire un calcul sur des flottant, je suis passé par le prédicat suivant:
si x = 3/4y alors 4x=3y
Du coup plus de problème et tout fonctionne parfaitement.
Merci quand même.
PS: même avec ta solution le résultat de la commande ne fonctionnait pas
25 sept. 2009 à 20:16
merci de cette réponse rapide.
Je ne suis plus au boulot mais je test ta soluce des demain, une fois ma VM monté ;)
Je te tiens au courant.