Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2007, 15h52   #1
Scurz
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut Bash, souci avec let

Hi,

J'éspère poster dans la bonne rubrique vu que c'est du shell système.

Donc voilà, je souhaite convertir le résultat d'un cat /proc/uptime en minutes :

Code :
1
2
3
vari_uptime=$(cat /proc/uptime | cut -d" " -f1)
let "t1 = (($vari_uptime / 60))"
echo $t1
Apparemment, ça ne fonctionne pas puisque :

Citation:
./charge_uptime.sh: line 25: let: t1 = ((11642.53 / 60)): missing `)' (error token is ".53 / 60))")
Une idée ? Je ne suis pas sûr de la bonne utilisation de let.

bye
  Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 16h21   #2
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Bonjour

Je ne suis pas sûr du tout de ma réponse:
Code :
let t1=(($vari_uptime / 60))
Peut-être, as-tu déjà essayé ?
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 17h17   #3
Scurz
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Citation:
./charge_uptime.sh: line 28: syntax error near unexpected token `('
./charge_uptime.sh: line 28: `let t1=(($vari_uptime / 60))'
J'ai regardé les exemples ici, mais ça ne m'aide pas beaucoup.
  Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 17h18   #4
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par Scurz
Hi,

J'éspère poster dans la bonne rubrique vu que c'est du shell système.

Donc voilà, je souhaite convertir le résultat d'un cat /proc/uptime en minutes :

Code :
1
2
3
vari_uptime=$(cat /proc/uptime | cut -d" " -f1)
let "t1 = (($vari_uptime / 60))"
echo $t1
Apparemment, ça ne fonctionne pas puisque :


Une idée ? Je ne suis pas sûr de la bonne utilisation de let.

bye
pour les calculs aves des nombres flottants : bc…

Code :
1
2
3
4
 
vari_uptime=`cat /proc/uptime | cut -d" " -f1`
t1=`echo $vari_uptime / 60 | bc -l`
echo $t1
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 17h21   #5
Scurz
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Ah, en effet, il n'y a plus d'erreur, je ne pensais pas que l'on pouvait utiliser bc pour des nombres décimaux.

Mais apparemment, le paquet bc sous debian n'est pas installé automatiquement lorsque l'on installe une debian de base, c'est bête, car c'est un peu moins multi-platformes car il faut installer un paquet pour que le script fonctionne.
  Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 11h01   #6
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
He He l'erreur est somme toute classique :
Code :
1
2
3
 
let t1=(($vari_uptime / 60)) # ne PEUT pas marche 
t1=(( $vari_uptime / 60 )) # fonctionne
la difference ? pas le let (y sert a rien , juste pour la compabilité) mais le "espace entre apres le (( et avant le ))
ce sont des COMMANDEs "build in" donc a separer ........
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Mettre Résolu
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h47.


 
 
 
 
Partenaires

Hébergement Web