嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

shell脚本示例详解

2023-6-30 19:50| 发布者: 奥卡姆剃刀| 查看: 108| 评论: 0

类目:  >  知识库     文档编号: 1048

shell脚本示例详解

在我们使用shell的时候,并不完全是执行完程序后让程序自己一直运行,在程序执行中途往往还需要我们人参与互动,比如输入某个参数,或者由人做出某些机器无法控制的判断,提高程序的互动性。本例我们以背光为例,需要我们观察屏幕背光是否亮起来控制程序结果。

测试现象

首先看下测试现象,命令行输入命令./backlight.sh,程序显示将屏幕背光关闭,然后再打开屏幕背光,之后通过观察输入是否观察到了现象,正确输入y,没有输入N

可以看到按照我们的设定,观察屏幕的字体为绿色,提示输入ESC键的为黄色。我们实现了通过提示输入按键来观察背光是否正常。

编写脚本

continue.sh

#! /bin/sh

 

a=`printf "\033"`

echo -e "\033[1;33m 输入ESC键继续\033[0m"

while :

do

        read -sn 1  b

        if [[ "$a" = "$b" ]]

        then

                exit 0

        fi

done

程序作用就是输出一个提示信息,等待用户按下ESC键后退出程序。

首先,为了程序美观,我们定义变量a为一个转义字符"\033"。这个字符是ASCII码中的转义字符,表示后面的字符是一个控制字符。然后使用echo命令输出一段带有颜色的提示信息,其中使用了控制字符来设置文本颜色。具体来说,"\033[1;33m"表示设置文本颜色为黄色,"\033[0m"表示重置文本颜色。

接下来进入一个无限循环,每次循环使用read命令读取用户输入的一个字符,并使用选项-s-n来隐藏输入字符并不换行。如果读取到的字符与变量a的值相等,则说明用户按下了ESC键,此时使用exit命令退出程序。如果读取到的字符与变量a的值不相等,则继续等待用户输入。

backlight.sh

#! /bin/bash

echo -e "\033[36m-----------BACKLIGHT--------------\033[0m"

echo -e "\033[1;32m 请按下ESC键关闭背光并观察屏幕 \033[0m"

 

./continue.sh

echo 0 > /sys/class/backlight/backlight/brightness

 

echo -e "\033[1;32m 请按下ESC键打开背光并观察屏幕 \033[0m"

./continue.sh

echo 6 > /sys/class/backlight/backlight/brightness

sleep 1

 

echo -e "\033[1;32输入:[Y/N]\033[0m"

read -sn 1 play_check

 

if [ ! -n "$play_check" ]

        then

        exit 0;

 

elif [ "$play_check" == 'y' ]

        then

        echo -e "\033[1;32m BACKLIGHT  OK \033[0m"

 

else

       echo -e "\033[1;31m BACKLIGHT  OK \033[0m"

 

fi

该代码是一个用于测试背光功能的脚本程序,主要分为以下几个步骤:

1.使用echo命令输出一段带有颜色的提示信息,表示开始测试背光功能。

2.使用echo命令输出一段带有颜色的提示信息,提示用户按下ESC键关闭背光并观察屏幕。

3.使用./continue.sh命令执行一个名为continue.sh的脚本程序,该程序的作用是等待用户按下ESC键并返回。

4.使用echo命令将0写入/sys/class/backlight/backlight/brightness文件,以关闭背光。

5.使用echo命令输出一段带有颜色的提示信息,提示用户按下ESC键打开背光并观察屏幕。

6.使用./continue.sh命令执行continue.sh脚本程序,等待用户按下ESC键并返回。

7.使用echo命令将6写入/sys/class/backlight/backlight/brightness文件,以打开背光。

8.使用sleep命令暂停1秒,等待背光打开。

9.使用echo命令输出一段带有颜色的提示信息,提示用户输入[Y/N]

10.使用read命令读取用户输入的一个字符,并使用选项-s-n来隐藏输入字符并不换行。

11.如果用户没有输入任何字符,则使用exit命令退出程序。

12.如果用户输入了字符y,则使用echo命令输出一段带有颜色的提示信息,表示背光功能测试通过,并将测试结果写入一个指定的文件中。

13.如果用户输入了其他字符,则使用echo命令输出一段带有颜色的提示信息,表示背光功能测试失败,并将测试结果写入指定的文件中。

 


已解决

未解决

只是看看
上一篇:PCIE总线下一篇:gdb远程调试

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-7-5 22:54

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部