Bash脚本师
Bash Script division
我是脚本初学者。我有一个温度传感器,如果我抓取文件 /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 "/ ")
要将命令的输出分配给变量,您需要使用反引号或(最好)$()
语法。
s=$(cat /sys/bus/w1/devices/28-000006c5772c/w1_slave | grep t= | cut -d "=" -f2)
将 $s 设置为 24187
那个,并按照 chepner 的建议删除 =
符号后的空格将得到你想要的。
我是脚本初学者。我有一个温度传感器,如果我抓取文件 /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 "/ ")
要将命令的输出分配给变量,您需要使用反引号或(最好)$()
语法。
s=$(cat /sys/bus/w1/devices/28-000006c5772c/w1_slave | grep t= | cut -d "=" -f2)
将 $s 设置为 24187
那个,并按照 chepner 的建议删除 =
符号后的空格将得到你想要的。