CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Donner la valeur de sortie d'une commande à une variable ?

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
Pseudo supprimé
Pseudo supprimé 18 mars 2019 à 22:43:15

Salut,
Je suis sous i3-wm et comme j'ai un PC portable j'ai mis un script qui se lance toutes les 5 minutes pour avoir un avertissement quand la batterie est inférieure à 15% (Tenez pas compte des 4 variables en commentaire pour l'instant)
#!/bin/bash BATTINFO=`acpi -b` #nombre=`grep -o Battery test | wc -l` #field=4 #cutin=1*$nombre #cutdeux=1*$nombre if [[ `echo $BATTINFO | grep Discharging` && `echo $BATTINFO | grep Discharging | cut -f 4 -d " " | cut -c 1-2 | tr -d %` -lt 16 ]] ; then DISPLAY=:0.0 /usr/bin/notify-send -i /home/machin/Images/battery-empty.png "Batterie faible!" "$BATTINFO" fi
En gros, ce script regarde si la batterie est en train de se décharger avec la commande acpi -b et si c'est le cas elle récupère le pourcentage restant, supprime le "%" de la valeur et regarde si elle est inférieur à 16.
Le problème, c'est que quand je branche ma dualshock 4 sur mon PC j'ai un nouvel appareil à 0% de batterie qui apparait quand je fais acpi -b et la sortie de la commande devient alors:
Battery 0: Full, 0%, rate information unavailable Battery 1: Discharging, 31%, 01:20:42 remaining
Ce qui fait que ce script trouve 0 en valeur j'ai donc un avertissement Batterie faible toutes les 5 minutes...
Pour pallier à ce problème, j'ai essayé de créer une variable field, cutin et cutdeux ( en commentaire) qui remplaceront 4, 1 et 2 et qui dépendront du nombre de fois que le mot "Battery" est présent dans la sortie de acpi -b. Mais en créant la variable nombre qui compte le nombre de fois que y'a Battery je me suis rendu compte que faire nombre=`grep -o Battery test | wc -l` ne donne pas la valeur 2 à nombre mais la commande et "`grep -o Battery test | wc -l" me fout une chaîne de caractère. Comment faire du coup ?

Message édité le 18 mars 2019 à 22:45:24 par Pseudo supprimé
[deban]_Dakien
[deban]_Dakien
Niveau 10
19 mars 2019 à 01:05:06

J'ai pas de Linux sous les yeux pour regarder mais tu ne peux pas préciser plus exactement le préiphérique à observer ? Par exemple, sur NetBSD, pour regarder le niveau de charge de la batterie, je fais cette commande : /usr/sbin/envstat -d acpibat0|grep %

Du coup, pas d'erreur possible. Une manette ne sera jamais acpibat0. Dans ton cas, une manette PS4 deviendrait un truc genre acpibat1 (encore que j'ai pas essayé) mais la commande s'en ficherait au final. Tu dois bien pouvoir faire ça aussi, non ? :question:

Pseudo supprimé
Pseudo supprimé 19 mars 2019 à 19:14:39

Je peux effectivement avoir le pourcentage de la batterie que je veux avec
upower -i /org/freedesktop/UPower/devices/battery_BAT0
Mais le problème avec echo c'est que ça affiche tout sur une ligne donc ça affiche un tas comme ça:
native-path: BAT0 vendor: marque model: Primary serial: un nombre power supply: yes updated: mar. 17 mars 2019 00:00:00 CET (7 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: charging warning-level: none energy: 15 Wh energy-empty: 0 Wh energy-full: 43 Wh energy-full-design: 43 Wh energy-rate: 26 W voltage: 16 V time to full: 1,1 hours percentage: 35% capacity: 100% technology: lithium-ion icon-name: 'battery-good-charging-symbolic' History (charge): 135,000 charging 1 33 charging
Du coup, pour récupérer seulement les chiffres du pourcentage c'est galère, j'ai essayé de faire un cut -c 400-401, mais il semblerait que les chiffres du pourcentage ne soient pas toujours à la même place sûrement à cause du "7 seconds" qui devient un nombre à deux chiffres parfois.

gunrell
gunrell
Niveau 21
19 mars 2019 à 19:48:32

Methode de bourrin :) :

upower -i /org/freedesktop/UPower/devices/battery_BAT0 | awk -Fpercentage: '{print $2}' | cut -d ' ' -f 2

J'utilise percentage: comme délimiteur ...

Je sais pas si je reponds à ta question de base mais ça enleve le problèmes des 7 secondes !

Pseudo supprimé
Pseudo supprimé 19 mars 2019 à 20:57:15

Merci à tous j'ai réussi en utilisant un truc comme la commande que t'as donnée, par contre quand je mettais le | cut -d ' ' -f 2 ça me mettait en sortie plusieurs lignes vides et en l'enlevant ça a mis plusieurs lignes vides sauf une avec le pourcentage précédé de plusieurs espaces, mais dans les variables visiblement les espaces sont pas pris en compte donc en faisant :
A=`upower -i /org/freedesktop/UPower/devices/battery_BAT0 | awk -Fpercentage: '{print $2}' | tr -d %`
Puis echo $A, j'ai bien le pourcentage sans espace.
D'ailleurs d'où sort le /org/freedesktop ? Je n'ai aucun dossier org à ma racine :doute:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware