我是脚本编写的初学者。我有一个温度传感器,如果我抓住文件/sys/bus/w1/devices/28-000006c5772c/w1_slave
,它会给我温度。
该文件的输出如下:
83 01 4b 46 7f ff 0d 10 66 t=24187
正如您所见,温度为t=
24187,我必须将其除以1000。
我的脚本看起来像这样:
#!/bin/bash
date +%Y-%m-%d-%H-%M
s= cat /sys/bus/w1/devices/28-000006c5772c/w1_slave | grep t= | cut -d "=" -f2
x= 1000
f= echo $(( $s / $x )) | bc -l
echo the actually temperature is $f
但它不起作用。当我启动脚本时,我在这里得到了这个输出:
2015-05-04-08-51 (date is wrong NTP not configured^^)
23687
/home/pi/RAB.sh: line 5: 1000: command not found
/home/pi/RAB.sh: line 6: / : syntax error: operand expected (error token is "/ ")
答案 0 :(得分:1)
要将命令的输出分配给变量,您需要使用反引号或(最好)$()
语法。
s=$(cat /sys/bus/w1/devices/28-000006c5772c/w1_slave | grep t= | cut -d "=" -f2)
将$ s设置为24187
那,并且删除chepner建议的=
标志后的空格将为您提供所需的内容。