GNU/Linux >> Znalost Linux >  >> Linux

Bash skript, který ukazuje měnící se hodnoty v reálném čase z příkazů

Můžete použít tput cup 0 0 pro odeslání kurzoru nahoru do levé horní části obrazovky. clear jednou.

#!/bin/bash
clear
while sleep 1; do
    tput cup 0 0
    printf "%21s %6d    \n" \
      "Célula calibrada: "   $(npe ?AI1) \
      "Anemómetro: "         $(npe ?AI2) \
      "Célula temperatura: " $(npe ?AI3) \
      "Célula temperatura: " $(npe ?AI4)
done

Může být složité implementovat řešení v reálném čase v bash.

Existuje mnoho způsobů, jak spustit skript jednou za X sekund, můžete použít watch .Předpokládám, že již máte myScript.sh dostupný. Nahraďte X počtem sekund, které potřebujete.

  1. watch -n X ./myScript.sh

  2. while sleep X; do ./myScript.sh; done

    upd. Chcete-li emulovat hodinky, můžete mezi iteracemi vymazat obrazovku. uvnitř skriptu to bude vypadat takto:

    while sleep X; do 
       clear; 
       command1;
       command2;
    done
    
  3. přidejte jednu z výše uvedených možností do samotného skriptu.


Předpokládám, že blikání je způsobeno tím, že vašim příkazům chvíli trvá, než vrátí jejich hodnoty. Toto je moje obvyklé řešení:

cmds(){
  echo "Célula calibrada: " $(npe ?AI1);
  echo "Anemómetro: " $(npe ?AI2);
  echo "Célula temperatura: " $(npe ?AI3);
  echo "Célula temperatura: " $(npe ?AI4);
}

while true; do
  out="$(cmds)"
  clear
  echo "$out"
  sleep 1
done

Myšlenka je taková, že vyčistíme obrazovku na poslední možnou chvíli.


Linux
  1. Změna hesla systému Linux ve skriptu bash

  2. Jak spustit příkazy bash Linuxu ve skriptu PERL?

  3. Rsync Neznámá možnost ze spuštění skriptu Bash?

  1. Získat úplnou cestu ze skriptu Bash?

  2. Bash + Jak opustit sekundární skript a hlavní skript v obou případech?

  3. Potrubí do/ze schránky ve skriptu Bash

  1. Proměnná ve skriptu Bash, která si zachovává hodnotu z posledního spuštění

  2. Jak mohu získat jedinečné hodnoty z pole v Bash?

  3. Zavolejte skript Python z bash s argumentem