GNU/Linux >> Tutoriales Linux >  >> Linux

Script Bash que muestra el cambio de valores en tiempo real de los comandos

Puedes usar tput cup 0 0 para enviar el cursor a la parte superior izquierda de la pantalla. clear una vez.

#!/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

Puede ser complicado implementar una solución en tiempo real en bash.

Hay muchas formas de ejecutar un script una vez en X segundos, puede usar watch .Supongo que ya tienes myScript.sh disponible. Reemplace X con la cantidad de segundos que necesita.

  1. watch -n X ./myScript.sh

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

    actualización para emular el reloj, es posible que desee borrar la pantalla entre iteraciones. dentro del script se verá de esta manera:

    while sleep X; do 
       clear; 
       command1;
       command2;
    done
    
  3. agregue una de las opciones anteriores al script en sí.


Supongo que el parpadeo se debe a que sus comandos tardan un momento en devolver sus valores. Esta es mi solución habitual:

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

La idea es que despejemos la pantalla en el último momento posible.


Linux
  1. ¿Opción desconocida de Rsync de la ejecución del script Bash?

  2. ¿Obtener ruta completa desde dentro de Bash Script?

  3. Canalizar hacia/desde el portapapeles en el script Bash

  4. Ejecutar script bash desde URL

  5. Llame al script de Python desde bash con argumento

¿Cómo saber si estoy en una sesión Tmux desde un script Bash?

¿Transferir una lista de valores a un script Bash?

Bash + ¿Cómo salir del script secundario y del script principal en ambas ocasiones?

Variable en Bash Script que mantiene su valor desde la última vez que se ejecutó

¿Cómo puedo obtener valores únicos de una matriz en Bash?

bash + leer variables y valores del archivo mediante script bash