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
。
私もそれを次のように交換しましたecho
。printf
後者はより安定しています最後の行では、値を小数点の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