Pages : 1
#1 Le 27/11/2009, à 14:02
- romain22
Aide pour script Bash
Salut a tous
Je souhaiterai réalisée un script qui recupere la charge en miliampere (situé dans /proc/acpi/battery/BAT0/state si j'ai bonne memoire )
et qui le divise pas le temps depuis que le script est lancée
et qui grace a zenify afficher un icone et des notifications:
#!/bin/bash
while IFS=: nom valeur unité
do
echo $valeur | zenity --notification --listen --window-icon=/home/romain/image/bateri.tiff | zenity --notification --window-icon=/home/romain/image/bateri.tiff --text="ton texte"
done < /etc/passwd
Je ne sais pas comment faire pour inclure le temps d'execution du script et lui dire de lire la ligne 2 pas exemple ...
Merci de m'aider je suis debutant sous linux ;D et le programation bash assez differente du C++ !
Hors ligne
#2 Le 27/11/2009, à 14:18
- compte supprimé
Re : Aide pour script Bash
Salut,
j'imagine que le '< /etc/passwd' est une petite coquille
Tu veux lire quelle '2ème ligne' ?
#3 Le 27/11/2009, à 14:57
- romain22
Re : Aide pour script Bash
Bonjour,
Je me suis mal exprimé et étant obligée de crée les discutions sous windows (sous linux firefox me fait télécharger un fichier post.php...) je l'ai fait de tete ...
Donc
Pour résumer
fichier state:
present: yes
capacity state: ok
charging state: discharging
present rate: unknown
remaining capacity: 3392 mAh<-- Ligne a recupere
present voltage: 11265 mV
Je veux récupérer la remaing capacity et faire faire l'operation :
($tempsd'exec*(4608-143)(critical state))/(4608(full capa)-$remain)=temps restant
Le but de se script et d'afficher le temps restant avant l'extinction et de l'reactualiser toute les 5 min et d'afficher un incone qui donne le temps grace a zenify et d'afficher des notification toute les 30 min
(ma batterie ne prend pas en charge le temps restant sion je ne m'amuserai pas a faire sa )
comment faire pour savoir depuis combien de temps le script est lancé ? Recupere l'heure de lancement et y soustraire l'heure d'actualisation
Merci de votre precieuse aide ! :cool::cool::cool::cool::cool:
Hors ligne
#4 Le 27/11/2009, à 14:59
- romain22
Re : Aide pour script Bash
Evidament ce script sera placer dans le dossier batt-start du laptop-mode-tools comme ce script se lancera a lorsque le cordon ac sera debranché )
Hors ligne
#5 Le 27/11/2009, à 15:16
- compte supprimé
Re : Aide pour script Bash
Je le ferais bien en perl, je maitrise mieux :
#!/usr/bin/perl
$start = time;
while (1) {
# On récupère la charge restante
$ligne = `grep "remaining capacity" /proc/acpi/battery/BAT0/state`;
chomp($ligne);
(undef, undef, $capacity) = split(' ', $ligne);
$temps_execution = time - $start;
# On appelle zenity
system("echo $capacity | zenity...");
# On attend 5 minutes
sleep(5 * 60);
}
Dernière modification par oktoberfest (Le 27/11/2009, à 15:21)
#6 Le 27/11/2009, à 15:20
- compte supprimé
Re : Aide pour script Bash
Bon il reste le calcul tarabiscoté que tu veux faire entre la récupération de la charge restante et l'appel à zenity...
#7 Le 27/11/2009, à 15:23
- Sciensous
Re : Aide pour script Bash
en bash/shell et à adapter pour le calcul:
f="/proc/acpi/battery/BAT0/state"; for i in `grep remaining $f |cut -d":" -f2` ; do x=$i; break; done; echo $x
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#8 Le 27/11/2009, à 15:49
- romain22
Re : Aide pour script Bash
Nice !!! Thx alot
Working on it ;;)
Dernière modification par romain22 (Le 27/11/2009, à 16:15)
Hors ligne
#9 Le 27/11/2009, à 16:26
- romain22
Re : Aide pour script Bash
comment calculer le temps passez lors de l'ouverture du script ?
le
$start = time; $temps_execution = time - $start;
*
semble marcher qu'en perl quelqu'un a une idée en bash ?
Hors ligne
#10 Le 27/11/2009, à 21:00
- Hoper
Re : Aide pour script Bash
Facile, tu enregistre au lancement du script la date. Ensuite tu à chaque fois que tu as besoin de connaitre le temps depuis lequel il est lancé, tu fais le calcul "date actuelle - date de lancement".
## On comence par enregistrer la date actuelle
DATE_DEBUT=`date +%s`
## Pour connaitre le nombre de seconde depuis le lancement du script
ACTUEL=`date +%s`
TEMPS_ECOULE=$(($ACTUEL-$DATE_DEBUT))
Dernière modification par Hoper (Le 27/11/2009, à 21:06)
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#11 Le 30/11/2009, à 16:27
- romain22
Re : Aide pour script Bash
Ok je test sa merci
Un dermiere question comment faire des calcule avec des variable reel j'ai entendu parler de BC mais bon je suis vraiment pas tres douée ...
#!/usr/bin/bash
f="/proc/acpi/battery/BAT0/state";
for i in `grep remaining $f |cut -d":" -f2` ;
do x=$i;
break;
done;
echo (4608-143)/(4608-$x) | bc
echo message:$r | zenity --notification --text=$r;
Voila une partie de mon code et j'aimerai que le resultat soit un reel avec une precision de 2 chifre apres la virgule merci
Hors ligne
Pages : 1