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
이러한 권한 문제를 어떻게 해결합니까? 나는 우분투로 로그인했고 그는 파이의 유일한 사용자입니다.
답변1
첫 번째 줄은
/sys/.../temp
당신이 원하는 것이 아닙니다. 이 파일에서 값을 사용cat
하거나 검색합니다.head -n 1
$()
두 번째 줄에는 명령을 평가하고 해당 출력을 저장하는 구문이 없습니다 .세 번째 줄은 허가에 대해 불평합니다.
temp.log
를 사용하여 파일에 대한 쓰기 액세스 권한이 필요합니다chmod ugo+w temp.log
.
나는 또한 그것을 다음과 같이 교체 했습니다 echo
.printf
후자가 더 안정적이다마지막 줄에서는 값을 소수점 세 자리까지 자르는 방법입니다.
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