bb_black_学习笔记——(4)闪烁LED之shell命令

上一篇笔记在终端输入shell命令实现了LED灯的点亮与熄灭,作为初学者,已经兴奋了一阵,因为终于有了零的突破。手动点亮LED总会比较麻烦,还是得通过程序让它自己去点亮与熄灭,这样才更好玩。这篇笔记里,笔者通过学习shell脚本,实现LED的闪烁,这样才好玩。本篇笔记还是先从现象看起,然后在分析其实现原理。

第一步:实现LED灯闪烁

1、先来个简单的shell脚本,了解一下shell脚本的使用流程。下图为创建一个名为hello_sh的shell脚本编辑执行的过程。

几点说明:

(1)shell脚本可以没有文件后缀名,但是为了方便,也可以添加.sh为其后缀。上图中用_sh作为表示,也可以没有;

(2)shell脚本创建可以利用touch filename的形式来创建;

(3)编辑shell脚本可以直接使用vi编辑器,关于vi编辑器的简单实用请查看上一篇笔记;

(4)shell脚本是不需要编译就可以运行,有shell解释器完成命令的解读与执行;

(5)新建的shell脚本需要为其添加可执行权限,否则执行时会出错;

(6)运行shell脚本直接使用 ./* 就可以运行;

(7)上图中hello_sh脚本文件里只有一行内容,目的是输出hello字符,脚本内容如下图。

2、下面就进入今天的主题,首先还是要手动创建shell脚本文件,笔者的文件名为led_sh。创建和添加权限的过程就不在此贴了,请参考上文。下面直接贴出led_sh的内容。

几点说明:

(1)有关shell的详细使用,请参考这个链接http://c.biancheng.net/cpp/shell/。这个网站有精简的shell教程,对于初学者来说入门还是挺快的;

(2)简答解释一下脚本内容:

1)第1行:在终端显示hello led一串字符;

2)第2~4行:这部分是一个if语句,目的是查看是否有gpio44文件,如果没有,通过第3行脚本添加一个;

3)第4行:为gpio44添加输出属性;

4)第7~13行:这部分是一个while语句,在while语句里面先点亮LED,然后睡眠0.25秒再熄灭LED,再睡眠0.25秒。如此不停的循环。

5)第14行:关闭LED灯。

3、通过vi编辑器输入上面的脚本,然后运行,就可以看到LED灯闪烁的状态了。现象和上一篇笔记是一样的,不过这次直接运行脚本就可以实现不断的闪烁了。

第二步:学习简单的shell脚本

1、echo用法上一篇笔记已经说明,此处不再说明。

2、if用法。

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。if语句有三种用法,这里只说明最简单的一种语法,if ... else 语句:

1 if [ expression ] then
2     Statement(s) to be executed if expression is true
3 fi

几点说明:

(1)如果 expression 返回 true,then 后边的语句将会被执行;如果返回 false,不会执行任何语句。

(2)最后必须以 fi 来结尾闭合 if,fi 就是 if 倒过来拼写。

(3)expression 和方括号([ ])之间必须有空格,否则会有语法错误。

3、while用法。

while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为:

while command
do    Statement(s) to be executed if command is true
done

几点说明:

(1)命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假,否则不退出;

(2)循环体的内容包含在do……done之间。

时间: 2024-12-17 08:30:07

bb_black_学习笔记——(4)闪烁LED之shell命令的相关文章

STM32学习笔记——点亮LED

STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽式输出 7.推挽式复用功能 8.开漏复用功能 stm32GPIO模式设置相关寄存器设置的介绍 stm32中文参考手册中对GPIO模式设置对应寄存器的详细介绍: 下图为开发板LED的接线图: 根据上面的电路图可知,将GPIOB

Hadoop学习笔记_5_分布式文件系统HDFS --shell操作

分布式文件系统HDFS --shell操作 分布式文件系统[Distributed File System]概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 . 分布式文件系统特点: 是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间. 通透性.让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般

bb_black_学习笔记——(3)点亮LED之shell命令

这次改变一下笔记的结构,直接上图.点亮LED永远是学习MCU,ARM,FPGA的入门例程,可以说是经典例程.这里笔者也从点亮LED开始开始ARM学习之旅. 接下来就开始点亮LED之旅,在开始之前需要向读者说明:本文作者也是一个ARM初学者,学习过程中也是在网上查找各种资料,最后总结于此.可以确定实验的过程中有好多地方笔者自己也是没有搞明白的,所以请读者原谅不能写的太透彻. 第一步:要点亮LED,首先需要了解GPIO的硬件位置,这样才能去操作相应的IO口,实现点灯目的 1.连接好bb-black之

hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSystemShell.html 启动HDFS后,输入hadoop fs命令,即可显示HDFS常用命令的用法 [[email protected] hadoop-2.5.2]$ hadoop fs Usage: hadoop fs [generic options] [-appendToFile <lo

linux小白学习笔记(一)常用基础命令

ls                                    查看文件 (相当于dos下的dir)(其后可加路径,加 -a,可以查看隐藏文件) cd                                  改变当前路径(与dos下相同,cd +所在目录内文件夹名(相对路径),cd+/新路径(绝对路径),cd+..进入上个目录,cd进入根目录) clear                              清屏ls (相当于dos下的cle) 命令 “+ ”——he

inux命令学习笔记(5):rm 命令

学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令. rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目 录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令 (比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录, 到底要删除什么东西,操作时保持高度清醒的

linux命令学习笔记(19):find 命令概览

Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能 很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即 使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常 消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间( 这里是指30G字节以上的文件系统). 1.命令格式: find

ARM 学习笔记之二 LED点亮程序设计

第一步,先聊聊单片机 LED 点亮:         单片机可操作单个位:sbit    led1    =    P1    ^    2: 通过控制 变量 led1 来控制灯 的 亮 与 灭: #include <reg52.h> sbit led1 = P1 ^ 2; void delay(unsigned int xx)//延时 { int i = 0; while(xx--) { for(i = 0; i < 400; i++); } } int main() { while(

bb_black_学习笔记&mdash;&mdash;(6)建立Eclipse编程环境

最近学习了一个编程环境,感觉到非常方便,分享给大家.之前的几篇笔记都是通过Xshell工具远程登录开发板,在开发板上进行代码的编写,编译运行.好处就是对于初学者来说不需要搭建太多的开发环境,不好的地方,Linux自带的VIM编辑器是没有语法高亮的,代码量比较多的时候,用起来不是很方便.根据网上一些点子,安装Eclipse C/C++,没想到用过后感觉非常好,起码现阶段是认可.特别是对我这种初学者来说,真的觉得方便.好用. 我的基本环境是Windows7+Eclipse C/C.以下是网友的搭建步