Partage
  • Partager sur Facebook
  • Partager sur Twitter

difficulté pour créer un script

script bash

    17 août 2020 à 12:12:37

    Bonjour à tout le monde.

    Je suis nouvelle ici, désolé si je poste au mauvais endroit.

    J'utilise Linux avec l'environnement de bureau Xfce, et j'utilise le petit plugin genmon qui permet d'afficher des infos sur le panel.

    https://packages.debian.org/fr/buster/xfce4-genmon-plugin

    J'ai fais un script bash qui me permet de connaître l'état de la batterie en pourcentage et son status (charge, décharge, pleine) et j'y ai ajouté des petits émojis pour chaque état (un cœur brisé quand elle se décharge, un éclair quand la batterie se charge, et une coche verte quand elle est pleine)

    le script ressemble à ceci

    #!/bin/bash
    
    # Pour connaître la capacité de la batterie en pourcentage #
    cap=$(awk '{print $1}' /sys/class/power_supply/BAT0/capacity)
    
    # Pour connaître le status actuel de la batterie #
    case $(awk -F'=' '/^POWER_SUPPLY_STATUS/{print $2}' /sys/class/power_supply/BAT0/uevent) in
       "Charging") state="⚡ ";;
       "Discharging") state="💔 ";;
       "Full") state="✅ ";;
    esac
    
    # PERMET AU SCRIPT D'ÊTRE AFFICHÉ DANS LE PANEL SUR UNE SEULE LIGNE #
    echo "<txt>        $state$cap %</txt>"
    
    # PERMET DE MASQUER LA TOOLTIP SUR LE PANEL #
    echo "<tool></tool>"


    Comme vous pouvez le voir j'utilise 2 commandes distinctes séparées pour afficher le pourcentage et le status.

    J'aimerais pouvoir ces 2 commandes en une seule.

    Je maîtrise moyennement "case esac" donc je ne sais pas faire pour mettre les 2 en une.

    Et je ne maîtrise presque pas "if then else elfi fi"

    Surtout qu'il y a les petits émojis à intégrer (qui changent automatiquement selon l'état, si je débranche le pc c'est le cœur brisé qui apparait, ça charge c'est l'éclair qui apparaît, et une fois pleine, c'est la coche verte)

    Si quelqu'un pouvait m'aider, je galère pas mal, et plus je cherche, plus je me mélange les pinceaux à essayer plein de choses, et moins je comprends ce que je fais bien évidemment (sinon je viendrais pas demander désespérée vous voir, je me sens un peu idiote de pas réussir à trouver par moi-même :(

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      17 août 2020 à 13:21:48

      Salut,

      Tu ouvres une parenthèse ligne 7 que tu refermes ligne 8 mais ligne 9 et 10 tu as 2 parenthèses fermées mais aucune ouvrante.

      Tu as écrit : "J'aimerais pouvoir ces 2 commandes en une seule." pouvoir faire quoi ?

      Je ne bash pas mais je crois que case doit avoir un cas par défaut. Sur papier ton algo pourrait être :


      capacite_batterie = fn_recup_pourcentage()
      statut_batterie = fn_statut()
      cas statut_batterie:
          PLEINE : afficher coche verte
          RECHARGE : afficher éclair
          UTILISE : afficher cœur brisé
          defaut : passer

      avec ce code, tu devras relancer le programme pour voir l'évolution. Si tu veux une mise à jour chaque x minutes, tu devras crées une boucle et mettre le programme en tâche de fond.

      Je ne maîtrise pas assez bash pour t'aider sur l'affichage mais ce n'est pas l'étape la plus compliquée.

      • Partager sur Facebook
      • Partager sur Twitter

      difficulté pour créer un script

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown