Linuxシステムには、さまざまなセンサー状態の値を提供する一連のコマンドがあります。
これらのコマンドの呼び出しは次のようになります。
$ command1
5647
$ command2
76
$ command3
8754
値はリアルタイムで変更され、いずれかの値の状態を確認したいときはいつでもコマンドを再起動する必要があります。 。
私の目標は、次のようにこれらのコマンドを呼び出して値を更新されたままにする(リアルタイムで非同期またはx秒ごとに値を更新する)単純なBashスクリプトを作成することです。
$ ./myScript.sh
command1: x
command2: y
command3: z
command4: v
そのうち、、、x
およびy
値が変更されますz
。v
Bashでこれは簡単で効率的に達成できますか?それともPythonなどの他の言語を使用する必要がありますか?
追加情報で更新されました。
私の現在のスクリプトは次のとおりです。
#!/bin/bash
echo "Célula calibrada: " $(npe ?AI1)
echo "Anemómetro: " $(npe ?AI2)
echo "Célula temperatura: " $(npe ?AI3)
echo "Célula temperatura: " $(npe ?AI4)
npe
数値を返すコマンドの例です。次のような結果を期待しています。
秒単位の更新値を持つwatch -n x ./myScript.sh
コマンドを介してこの出力を取得しています。x
スクリプトを次のように編集すると:
#!/bin/bash
while sleep 1; do
clear; # added to keep the information in the same line
echo "Célula calibrada: " $(npe ?AI1);
echo "Anemómetro: " $(npe ?AI2);
echo "Célula temperatura: " $(npe ?AI3);
echo "Célula temperatura: " $(npe ?AI4);
done
私の出力には迷惑な点滅が伴います。
ベストアンサー1
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