Bash
獲取 CPU 溫度,將其儲存在 VAR 中並將其發送到伺服器
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}
而不是被變數內容替換。花括號是可選的,但建議使用。