目录
前言
一、shell脚(小试牛刀)
# !/bin/bash # 指定shell类型
export ECHO_STYLE_00="\033[0m" # default style(black background, white foreground)
export ECHO_STYLE_01="\033[41;33;1m" # red background, yellow foregound bold
export ECHO_STYLE_02="\033[43;370;1m" # yellow background, white foregound bold
#filepath=/sys/class/thermal/thermal_zone0/temp
filepath=$1
echo “ =================================================== ”
echo “ ================查询树莓派CPU温度================== ”
echo “ =================================================== ”
TempNameFlag=0
read -p "输入查询指令(Y/y):(敲回车键默认不查询)" TempName
if [ "$TempName"x == "Y"x ];then
cd /sys/class/thermal/thermal_zone0
echo -e "${ECHO_STYLE_02} 当前CPU温度如下:${ECHO_STYLE_00}"
cat temp
cd /home/pi/
elif [ "$TempName"x == "y"x ];then
cd /sys/class/thermal/thermal_zone0
echo -e "${ECHO_STYLE_02} 当前CPU温度如下:${ECHO_STYLE_00}"
cat temp
cd /home/pi/
else
TempNameFlag=1;
echo -e "${ECHO_STYLE_02} 查询已结束:${ECHO_STYLE_00}"
fi
(二)遇到如下问题(.sh格式问题)
解决办法
(三)效果如下:
二、Linux文件IO编程
(一)软件代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp"
int main()
{
int fd;
double temp = 0;
char buf[32];
//打开cpu数据文件
fd = open(TEMP_PATH, O_RDONLY);
if (fd < 0)
{
printf("打开树莓派温度数据文件失败!\n");
return -1;
}
// 读取文件内容
if (read(fd,buf,32) < 0)
{
printf("温度读取失败!\n");
return -1;
}
// 转换为浮点数打印
temp = atoi(buf) / 1000.0;
printf("树莓派CPU温度: %.2f\n", temp);
// 关闭文件
close(fd);
return 0;
}