GNU/Linux >> Linux の 問題 >  >> Linux

コマンドからのリアルタイム値の変化を示す Bash スクリプト

tput cup 0 0 を使用できます カーソルを画面の左上に移動します。 clear

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

bash でリアルタイム ソリューションを実装するのは難しいかもしれません。

watch を使用して X 秒に 1 回スクリプトを実行する方法はたくさんあります .既に myScript.sh を持っていると仮定します 利用可能。 X を必要な秒数に置き換えます。

<オール>
  • watch -n X ./myScript.sh

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

    更新。 watch をエミュレートするには、繰り返しの間に画面をクリアしたい場合があります。スクリプト内では次のようになります:

    while sleep X; do 
       clear; 
       command1;
       command2;
    done
    
  • 上記のオプションのいずれかをスクリプト自体に追加してください。


  • ちらつきは、コマンドが値を返すのに少し時間がかかるためだと思います。これは私の通常の回避策です:

    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
    

    可能な限り最後の瞬間に画面をクリアするという考えです.


    Linux
    1. bashスクリプトでLinuxシステムのパスワードを変更する

    2. 並行する4つのタスク…それを行う方法は?

    3. フォルダから最も古いファイルを削除するためのBashスクリプト?

    1. Bashスクリプト内からフルパスを取得しますか?

    2. BashスクリプトからTmuxセッションに参加しているかどうかを確認するにはどうすればよいですか?

    3. 値のリストをBashスクリプトにパイプしますか?

    1. 前回の実行時の値を保持する Bash スクリプトの変数

    2. Bashの配列から一意の値を取得するにはどうすればよいですか?

    3. 経過時間を計算する Bash スクリプト