コマンドを使用して2桁の温度の戻り値を取得しようとすると、sensors
次のようになります。
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +40.0°C (high = +85.0°C, crit = +95.0°C)
Core 8: +35.0°C (high = +85.0°C, crit = +95.0°C)
Core 9: +40.0°C (high = +85.0°C, crit = +95.0°C)
Core 10: +38.0°C (high = +85.0°C, crit = +95.0°C)
coretemp-isa-0001
Adapter: ISA adapter
Core 0: +38.0°C (high = +85.0°C, crit = +95.0°C)
Core 1: +37.0°C (high = +85.0°C, crit = +95.0°C)
Core 9: +30.0°C (high = +85.0°C, crit = +95.0°C)
Core 10: +31.0°C (high = +85.0°C, crit = +95.0°C)
次のコマンドで戻り値を取得できましたが、値を1つずつ取得する必要があります。
sensors | awk '{if (match($0, "Core 0")){printf("%d",$3);} }'
リターン: 4038
最初または2番目の発生を1つずつ取得する方法はありますか?
答え1
見ているman sensors
あなたが使用できる:sensors -j
その後、データはJSON形式で返され、それを解析して必要な値に切り捨てることができます。
答え2
$ sensors | sed -rn 's/.*Core 0:\s+([^ ]+).*/\1/p'
+40.0°C
+38.0°C
$ sensors | sed -rn 's/.*Core 0:\s+.([0-9.]+).*/\1/p'
40.0
38.0
$ sensors | sed -rn 's/.*Core 0:\s+.([0-9]+).*/\1/p'
40
38