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 的建议删除 = 符号后的空格将得到你想要的。