センサーを検出して変数に保存

センサーを検出して変数に保存

2つのセンサーを取得し、bashスクリプトの変数に2つの答えを追加したいと思います。

私はこれを得たが、それは私のニーズに合わない。

[root@**** ~]# sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +40.0°C  (high = +80.0°C, crit = +96.0°C)
Core 1:       +45.0°C  (high = +80.0°C, crit = +96.0°C)
Core 2:       +50.0°C  (high = +80.0°C, crit = +96.0°C)
Core 8:       +47.0°C  (high = +80.0°C, crit = +96.0°C)
Core 9:       +48.0°C  (high = +80.0°C, crit = +96.0°C)
Core 10:      +45.0°C  (high = +80.0°C, crit = +96.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 0:       +36.0°C  (high = +80.0°C, crit = +96.0°C)
Core 1:       +44.0°C  (high = +80.0°C, crit = +96.0°C)
Core 2:       +41.0°C  (high = +80.0°C, crit = +96.0°C)
Core 8:       +42.0°C  (high = +80.0°C, crit = +96.0°C)
Core 9:       +44.0°C  (high = +80.0°C, crit = +96.0°C)
Core 10:      +48.0°C  (high = +80.0°C, crit = +96.0°C)


[root@*** ~]# sensors | sed -rn 's/.*Core 0:\s+.([0-9]+).*/\1/p'
40
36

40と36を変数に保存する必要があります。bashスクリプトの2つの別々の変数に追加する方法はありますか?

ベストアンサー1

コマンドを無視しsensorsてファイルシステムから直接値を読み取ることもできます/sys

VAR1RAW=$(cat /sys/devices/platform/coretemp.0/hwmon/hwmon*/temp1_input)
VAR1=$(expr $VAR1RAW / 1000)
VAR2RAW=$(cat /sys/devices/platform/coretemp.1/hwmon/hwmon*/temp1_input)
VAR2=$(expr $VAR2RAW / 1000)

(パス要素のアスタリスクを使用hwmon*すると、hwmonデバイス番号を上書きできます。パスを指定すると、その.../platform/coretemp.N/...レベルには一致するディレクトリが1つだけあります。)

ファイルシステムの生の値は/sys1/1000度単位で表されるため、1000で割る必要があります。整数演算のみが実行されるため、expr素数も削除されます。

おすすめ記事