
Wenn 나는 sensors
이 출력을 얻습니다.
cpu_thermal-virtual-0
Adapter: Virtual device
temp1: +55.0 C (crit = +120.0 C)
나만 필요해+55.0℃변수에 저장온도그리고 그것을 서버로 보내세요:
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/
답변1
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
For sensors
- json 형식의 명령 출력 데이터
jq
json에서 작업하기 위한 도구입니다. -
쌍에는 특별한 의미가 있으므로 따옴표를 사용하는 것이 중요합니다 jq
. 내부 섹션의 출력은 $()
원시 온도여야 합니다.
- 라인 에서는 curl
- 변수로부터 온도가 주입됩니다 TEMP
. 이 값은 작은따옴표 밖에 있어야 합니다. 그렇지 않으면 ${TEMP}
변수 내용으로 대체되지 않고 그대로 유지됩니다 . 교정장치는 선택사항이지만 권장됩니다.
답변2
temp=`sensors | awk '/temp1/{print $2}'`
curl -i -k -X POST -H "Content-Type: application/json" --data "{ \"id\":\"2\",\"timestamp\":\"100\",\"data\":\"$temp\"}" $URL