Bash脚本部门

时间:2015-05-15 11:47:35

标签: linux bash scripting division operand

我是脚本编写的初学者。我有一个温度传感器,如果我抓住文件/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 "/  ")

1 个答案:

答案 0 :(得分:1)

要将命令的输出分配给变量,您需要使用反引号或(最好)$()语法。

s=$(cat /sys/bus/w1/devices/28-000006c5772c/w1_slave |  grep t= | cut -d "=" -f2)

将$ s设置为24187

那,并且删除chepner建议的=标志后的空格将为您提供所需的内容。