Bash

獲取 CPU 溫度,將其儲存在 VAR 中並將其發送到伺服器

  • November 10, 2020

Wenn 我用sensors我得到這個輸出

cpu_thermal-virtual-0
Adapter: Virtual device
temp1:        +55.0 C  (crit = +120.0 C)

我只需要將 +55.0 C儲存在變數temp中並將其發送到伺服器:

curl -i -k -X POST -H "Content-Type: application/json" --data '{ "id":"2","timestamp":"100","data":"temp"}' https://dv7knsjzph.execute-api.eu-central-1.amazonaws.com/prod/boxtronic-devices/2/data/
TEMP=$(sensors -j | jq '."cpu_thermal-virtual-0"."temp1"."temp1_input"')
curl -i -k -X POST -H "Content-Type: application/json" --data '{ "id":"2","timestamp":"100","data":"'${TEMP}'"}' https://dv7knsjzph.execute-api.eu-central-1.amazonaws.com/prod/boxtronic-devices/2/data/

$()就是接收輸出並保存到變數中TEMP(類似反引號```但可以封裝)

-j對於sensors-command 輸出 json 格式的數據

jq是對json進行操作的工具。引號的使用很重要,因為-對於jq. 內部部分的輸出$()應該是原始溫度。

curl-line 上,溫度是從TEMP-variable 注入的。請注意,這必須在任何單引號之外,否則它將保持原樣${TEMP}而不是被變數內容替換。花括號是可選的,但建議使用。

引用自:https://unix.stackexchange.com/questions/618934