我有一个安装了 Ubuntu 20.04 的树莓派 4。我是 Linux 新手,尝试每隔几分钟记录一次树莓派的温度。
我编写了一个 .sh 文件,我试图运行该文件,但它无法正常工作,我不确定为什么。
#!/bin/bash
temp=$(/sys/class/thermal/thermal_zone0/temp)
temp_f=echo "$temp/1000" | bc -l
echo "Pi Temp: %.3fC\n" $temp_f >> /home/projects/temperature_logger/temp.log
当我尝试运行这个时,我得到
./logscript.sh: line 2: /sys/thermal/thermal_zone0/temp: Permission Denied
./logscript.sh: line 3: /1000: No such file or directory
./logscript.sh: line 4: /home/projects/temperature_logger/temp.log: Permission Denied
我该如何解决这些权限问题?我以 ubuntu 身份登录,他是该 pi 上的唯一用户。
答案1
第一行尝试执行
/sys/.../temp
.那不是你想要的。使用cat
或head -n 1
检索该文件中的值。第二行缺少
$()
评估命令并存储其输出的构造。第三行抱怨许可。您需要对该
temp.log
文件的写入权限,可以使用chmod ugo+w temp.log
.
我也替换echo
为printf
as后者更可靠在最后一行中,这就是将值截断到小数点后三位的方法。
temp=$(cat /sys/class/thermal/thermal_zone0/temp)
temp_f=$(printf '%s\n' "$temp/1000" | bc -l)
printf 'Pi Temp: %.3fC\n' "$temp_f" >> /home/projects/temperature_logger/temp.log