UbuntuでRaspberry Pi温度を記録する - .shスクリプトを実行する問題

UbuntuでRaspberry Pi温度を記録する - .shスクリプトを実行する問題

Ubuntu 20.04がインストールされたRaspberry Pi 4があります。私はLinuxを初めて使用しており、数分ごとにRaspberry Piの温度を記録したいと思います。

.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としてログインし、彼はパイの唯一のユーザーです。

ベストアンサー1

  • 最初の行は/sys/.../tempあなたが望むものではありません。このファイルで値を使用catまたは検索します。head -n 1

  • $()2行目には、コマンドを評価してその出力を保存する構文はありません。

  • 3行目は許可について文句を言います。temp.logを使用してファイルへの書き込みアクセス権が必要ですchmod ugo+w temp.log

私もそれを次のように交換しましたechoprintf後者はより安定しています最後の行では、値を小数点の3桁まで切り取る方法です。

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

おすすめ記事