在bash中连续读取输入
我有一个简单的问题。我知道shell脚本在递归和循环时速度慢/效率低 通常,可以连续读取输入,而不必循环代码的读取/“抓取”部分,例如,当输入连续且大量时(一种事件驱动的场景) 比如,,, 我使用fedora16(gnome3.2),由于未知原因,capslock通知丢失。我有一台上网本,没有“奢侈”的LED指示灯。因此,我决定编写一个shell脚本,在按下capslock键时通知我。我想出了一个知道关键状态的方法在bash中连续读取输入,bash,Bash,我有一个简单的问题。我知道shell脚本在递归和循环时速度慢/效率低 通常,可以连续读取输入,而不必循环代码的读取/“抓取”部分,例如,当输入连续且大量时(一种事件驱动的场景) 比如,,, 我使用fedora16(gnome3.2),由于未知原因,capslock通知丢失。我有一台上网本,没有“奢侈”的LED指示灯。因此,我决定编写一个shell脚本,在按下capslock键时通知我。我想出了一个知道关键状态的方法 xset -q | grep Caps | awk '{print $4}'
xset -q | grep Caps | awk '{print $4}'
这将给我“开”/“关”作为输出。我可以让循环每一秒(或更短)执行一次,但这是一种非常粗糙的方法 您编写的是事件驱动的
xset-q
生成一些输出,只有在该点(即生成时)被grep
消耗。此时,grep
可能会产生一些输出(仅当它与Caps匹配时),并且只有在这种情况下,awk
才会处理某些内容
这里的问题不是bash,“问题”是xset-q
。它不是为了不断地给你输出而设计的。它被设计为一个一次性输出命令
要触及问题的另一部分-如果您实际上只需要一个指标,请查看此处:
希望这能有所帮助。这并不能解决您的bash问题,但您可能希望使用类似这样的方法:或者谢谢!我的另一部分有Ubuntu。我以前使用过指示键锁:)(事实上,当我第一次开始编写脚本时,我就想到了这个应用程序)。锁钥匙小程序不再出现在官方回购协议上了。(它一开始就存在吗?)。我想出了一个办法。我想我会绑定capslock键,以便在每次按下时运行脚本。那会容易得多:)但我不知道怎么做!内置键盘快捷键应用程序将只接受多个组合键:(
su -
yum install lock-keys-applet
exit
killall -HUP gnome-panel