美文网首页
shell脚本实现键盘LED灯闪烁

shell脚本实现键盘LED灯闪烁

作者: 网路元素 | 来源:发表于2019-10-01 09:14 被阅读0次

很幸运,在Ubuntu13.10的Terminal下发现了setleds命令,直接运行该命令后有如下输出:

xinu@slam:~$ setleds
KDGKBLED: Inappropriate ioctl for device Error reading current flags setting. Maybe you are not on the console?

查了一会资料,发现在Gnome界面下的Terminal执行该命令有问题,需要切换到TTY界面下(按CTRL+ALT+F1至F6),再切换回Gnome则按CTRL+ALT+F7组合键即可,该Bug已在http://askubuntu.com/questions/339028/caps-lock-indicator-not-synced,我们先不管,直接按CTRL+ALT+F1组合键切换至tty0,使用同样的帐号和密码登录,此时输入setleds命令会有如下提示:

xinu@slam:~$ setleds
Current default flags: NumLock off CapsLock off ScrollLock off Current flags: NumLock off CapsLock off ScrollLock off Current leds: NumLock off CapsLock off ScrollLock off

而相应的帮助信息查看man setleds命令,其中主要的使用格式和参数如下:

setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll]

从上面资料可以看到其实际上只控制Number Lock、Caps Lock、Scroll Lock三个灯的状态,分别控制如下:

1.控制单个灯

Number Lock亮:setleds +num
Number Lock灭:setleds -num
Caps Lock亮:setleds +caps
Caps Lock灭:setleds -caps
Scroll Lock亮:setleds +scroll
Scroll Lock灭:setleds -scroll

2.控制组合灯

任意两灯:
setleds +num -caps
setleds -num +scroll
……
全三灯:
setleds +num +caps +scroll
setleds +num -caps -scroll
……

有了上面的基础,我们再使用Shell的while循环和sleep命令,最终有了setleds_flash.sh脚本,其内容如下:

#!/bin/sh
while [ true ];
do
    setleds +num +caps +scroll
    sleep 1
    setleds -num -caps -scroll
    sleep 1
done

最后执行bash -e setleds_flash.sh命令即可执行上述脚本,接下来就注意PC键盘右上角三个灯吧,每隔一秒钟亮灭一次。 

注意:需切换到tty界面运行;还有使用CTRL+C中断脚本执行后,我的Caps Lock键不会跟随Caps Lock键的敲击而改变需将其亮状态使用setleds -caps切换为灭后才能正常响应,这是个待处理问题,看来setleds控制的Bugs还不少。

至此,我们演示了Shell脚本操作PC键盘灯(硬件)的亮灭,是不是有点小成就感啊,别骄啊,后面还有其他的方式来实现该效果。

相关文章

  • shell脚本实现键盘LED灯闪烁

    很幸运,在Ubuntu13.10的Terminal下发现了setleds命令,直接运行该命令后有如下输出: xin...

  • C编程实现键盘LED灯闪烁

    在《Shell脚本实现键盘LED灯闪烁》一文中,我们已感受到了控制的乐趣,一步步向硬件逼近,这次我们在Linux下...

  • C编程实现键盘LED灯闪烁方法2

    在《C编程实现键盘LED灯闪烁》一文中使用了定时器和ioctl的方式实现键盘LED灯周期性闪烁,而键盘本身作为一个...

  • PWM实现“流星雨”效果

    1、不同频率LED灯闪烁 接下来我们以下面LED灯的闪烁代码为例子,改变延时长短来看LED灯的效果 通过三个对比实...

  • Linux下命令使用及Shell编程

    1.shell脚本输出输出带颜色内容 2.shell脚本接收键盘输入 3.shell脚本判断前一个命令是否执行成功...

  • OSAL-led

    1、 LED灯设置 2、 LED灯闪烁 官方把代码写好了且开源了,大家有空可以看看(hal_led.c),学习一下...

  • shell 脚本监控系统内存占用率、主备机等

    运行结果 shell 脚本实现 #!/bin/sh ###############################...

  • LED灯闪烁的解决续篇

    昨天费了好大劲,利用网上网友视频介绍的方法,和led灯并联一个电容,晚上确实没有再出现关灯后闪烁的问题。 可是今天...

  • 尚硅谷大数据技术之Oozie

    第4章 Oozie的使用4.1 案例一:Oozie调度shell脚本目标:使用Oozie调度Shell脚本分步实现...

  • Oozie的使用

    案例一:Oozie调度shell脚本 目标:使用Oozie调度Shell脚本分步实现: 创建工作目录 在oozie...

网友评论

      本文标题:shell脚本实现键盘LED灯闪烁

      本文链接:https://www.haomeiwen.com/subject/ycalyctx.html