es wird mir langsam peinlich, aber ich komme schon wieder nicht weiter. Dieses Mal bin ich aber nah dran. Ich möchte aus der Ausgabe von sensors, zB
Code: Alles auswählen
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +34.0°C
pch_cannonlake-virtual-0
Adapter: Virtual device
temp1: +38.0°C
acpitz-acpi-0
Adapter: ACPI interface
temp1: +16.8°C (crit = +20.8°C)
temp2: +27.8°C (crit = +119.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +30.0°C (high = +94.0°C, crit = +100.0°C)
Core 0: +27.0°C (high = +94.0°C, crit = +100.0°C)
Core 1: +29.0°C (high = +94.0°C, crit = +100.0°C)
Core 2: +27.0°C (high = +94.0°C, crit = +100.0°C)
Core 3: +28.0°C (high = +94.0°C, crit = +100.0°C)
Core 4: +29.0°C (high = +94.0°C, crit = +100.0°C)
Core 5: +27.0°C (high = +94.0°C, crit = +100.0°C)
nvme-pci-0300
Adapter: PCI adapter
Composite: +34.9°C (low = -273.1°C, high = +80.8°C)
(crit = +80.8°C)
Sensor 1: +34.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +35.9°C (low = -273.1°C, high = +65261.8°C)
Folgendes kleines Skript ist bei meinen Bemühungen herausgekommen
Code: Alles auswählen
#!/bin/sh
Name="unknown"
MaxTemp=0
sensors | while read line; do
if echo "${line}" | grep -e '[^ ]-' > /dev/null; then
Name="$(echo ${line} | grep -oe '^[a-z]*')"
elif echo "${line}" | grep ' +' > /dev/null; then
Temp=$(echo "${line}" | awk -F "+" '{ split($2, arr, "°C"); printf("%d", arr[1] + 0.5) }')
if test ${Temp} -gt ${MaxTemp}; then
MaxTemp="${Temp}"
MaxName="${Name}"
fi
fi
done
echo "Maximum Temperature: $MaxName = $MaxTemp"
- $MaxTemp und $MaxName gehen verloren. Ich vermute, dass die Schleife in einer Subshell ausgeführt wird, weiß aber nicht wie ich das vernünftig umgehen kann.
- ich habe es nicht geschafft die vorvorletzte Zeile herauszufiltern - die mit "(crit = +80.8°C)", das ich werde momentan die fixen 80.8°C als Maximaltemperatur nicht los.
lg smutbert