sábado, 20 de fevereiro de 2010

Bateria de Notebooks em Shell Linux

Estou disponibilizando um script para verificação de status de bateria em notebooks.

Esse pequeno programa é escrito para Shell, mais especificamente Bourne Again Shell (Bash). Tive a idéia de fazê-lo para por em prática o que eu tenho estudado sobre a linguagem. A melhor maneira de aprender uma nova linguagem é praticando, não tem outro jeito!

Pra quem gosta de trabalhar em linha de comando esse programinha pode ser muito útil. Pelo menos pra mim está sendo...

Ele pode ser visualizado e baixado no Pastebin AQUI.

O código é este abaixo. Porém ele fica mais legivel no Pastebin.

   1.      #!/bin/bash
   2.      # Bateria: programa de medicao de status da bateria.
   3.      # Autor: Fabio Lima CE
   4.      # Data: 25-12-2009
   5.       
   6.      # Lendo os arquivos de parametros de
   7.      # kernel para obter as informacoes
   8.      # e o status da bateria.
   9.      echo ""
  10.      cat /proc/acpi/battery/BAT1/info  \
  11.      | grep "last full capacity:"      \
  12.      | cut -c26-29                     \
  13.      > /tmp/bat-capacity              
  14.      BATCAP=$(cut -f1 -d" " /tmp/bat-capacity)
  15.      echo "    Ultimo carregamento:       $BATCAP mAh"
  16.       
  17.      cat /proc/acpi/battery/BAT1/state \
  18.      | grep "remaining capacity:"      \
  19.      | cut -c26-29                     \
  20.      > /tmp/bat-remaining
  21.      BATREM=$(cut -f1 -d" " /tmp/bat-remaining)
  22.      echo "    Capacidade atual:          $BATREM mAh"
  23.       
  24.      echo " ($BATREM * 100) / $BATCAP " | bc \
  25.      > /tmp/bat-percent
  26.      BATPER=$(cat /tmp/bat-percent)
  27.       
  28.      echo "    Percentual remanecente:    $BATPER%"
  29.       
  30.      # Simulando uma barra de progresso para
  31.      # mostrar o nivel da bateria.
  32.      # A barra de progresso tera a seguinte aparencia:
  33.      #     Nivel [||||||||||..........]
  34.       
  35.      # Variaveis do tipo string que armazenarao
  36.      # as barras e os pontos da barra de progresso.
  37.      BARRS=
  38.      DOTS=
  39.       
  40.      # Calculando a quantidade de barras
  41.      # e armazenando na variavel BARRS.
  42.      for i in $(seq -s  " " $BATPER)
  43.      do
  44.              if [ $(echo "$i % 4" | bc) -eq 0 ]
  45.              then
  46.                      BARRS=$(echo $BARRS\|)
  47.              fi
  48.      done
  49.       
  50.      # Calculando a quantidade de pontos
  51.      # e armazenando na variavel DOTS.
  52.      for j in $(seq -s " " $(echo "100 - $BATPER" | bc))
  53.      do
  54.              if [ $(echo "$j % 4" | bc) -eq 0 ]
  55.              then
  56.                      DOTS=$(echo $DOTS.)
  57.              fi
  58.      done
  59.       
  60.      # Juntando e mostrando as barras e os pontos.
  61.      # Mostrando a barra de progresso pronta.
  62.      echo ""
  63.      echo "    Nivel: [$BARRS$DOTS]"
  64.      echo ""

Nenhum comentário:

Postar um comentário