在 Ubuntu 中记录树莓派温度 - 运行 .sh 脚本时出现问题

在 Ubuntu 中记录树莓派温度 - 运行 .sh 脚本时出现问题

我有一个安装了 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.那不是你想要的。使用cathead -n 1检索该文件中的值。

  • 第二行缺少$()评估命令并存储其输出的构造。

  • 第三行抱怨许可。您需要对该temp.log文件的写入权限,可以使用chmod ugo+w temp.log.

我也替换echoprintfas后者更可靠在最后一行中,这就是将值截断到小数点后三位的方法。

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

相关内容