Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/11/2009, à 14:02

romain22

Aide pour script Bash

Salut a tous smile

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 smile
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 winktongue)

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::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é smile)

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 big_smile

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 big_smile

Hors ligne