本帖最后由 IC爬虫 于 2015-11-8 18:27 编辑
好久没发帖了,拿了板子这样说不过去
前面已经试了使用echo直接操作LED的方法,但是这个还是有点不缺陷,比如我需要做闪灯的控制要怎么弄呢?
linux自带的shell非常的强大,负责了直接和系统内核沟通的桥梁的角色,可以利用 Shell脚本编程,完成更加复杂的操作。
在用户的目录下使用vi 编辑一个sh文件:编辑程序:- #!/bin/sh
- for((i=0;i<1000;i++))
- echo default-on >/sys/class/leds/firefly:yellow:user/trigger
- sleep 0.5s
- echo none >/sys/class/leds/firefly:yellow:user/trigge
- sleep 0.5s
- echo none >/sys/class/leds/firefly:blue:power/trigger
- sleep 0.1s
- echo default-on >/sys/class/leds/firefly:blue:power/trigger
- sleep 0.1s
复制代码
首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。 除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。编辑完毕,将脚本存盘为test.sh,文件名后缀sh表明这是一个Bash脚本文件。执行脚本的时候,要先将脚本文件的属性改为可执行的: 执行脚本的方法是: 我使用的是官方自带双系统里面的Ubuntu系统,在执行./test.sh会出现以下的错误提示:
syntax error: Bad for loop variable提示for 循环的语法错误,查了一下,系统启动问题。代码对于标准bash而言没有错,因为Ubuntu为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼。解决方法是 取消dash,执行:- sudo dpkg-reconfigure dash
复制代码 在选择项中选No,即可。
再执行:效果如下
|