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
可能な限り最後の瞬間に画面をクリアするという考えです.