Linux Bash下如何实现快捷键效果

简介:
一直想通过Bash实现像VI编辑器中那样,按一个键便自行执行某种操作,一个偶然的机会发现stty可以实现。
 
废话便不多说,附注中详注。
 
请先看脚本:
#!/bin/sh
# 我们可以通过这个脚本来实现,对按键的自动检测。至于用作什么,大家仁者见仁,智者见智了就,“英雄必有用武之地的”。
# 2009-12-29 13:00:54 update
wangxiaoyu(AT)live.com From  http://wangxiaoyu.blog.51cto.com
_tty_setting=$(stty -g)
stty -icanon
stty -echo
# We can use c2 arguement to use keyboard shortcut with 2 characters.
_key_press=$(head -c1)
stty $_tty_setting
# 下面是对输入进行判断的部分
#
case $_key_press in
        A) echo -en "我们这里可以替换成我们所要执行的命令字符串1\n"
        ;;
        2) echo -en "我们这里可以替换成我们所要执行的命令字符串2\n"
        ;;
        3) echo -en "我们这里可以替换成我们所要执行的命令字符串3\n"
        ;;
        4) echo -en "我们这里可以替换成我们所要执行的命令字符串4\n"
        ;;
        5) echo -en "我们这里可以替换成我们所要执行的命令字符串5\n"
        ;;
        6) echo -en "我们这里可以替换成我们所要执行的命令字符串6\n"
        exit 1;;
        *) echo -en "这里可以替换成脚本的帮助信息相关的命令\n"
esac
附注:
stty是用于显示和修改终端设置的,这个复杂的命令可以用在脚本中,用来控制终端 的行为或者显示输出的方法。结合特殊字符以及case或其它条件判断,我们很容易就可以实现像按下Ctrol + F 实现搜索文件。
 
脚本中。stty -g 是用来记录stty的参数,终端修改后在使用完毕后及时复原。
其中 stty -echo 这个很常用,常用来用来要求用户输入密码时用。



     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/251847,如需转载请自行联系原作者

相关文章
|
2月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
109 0
|
11天前
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
18 0
Linux Bash 脚本中的 IFS 是什么?
|
9天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数
|
11天前
|
Linux 数据安全/隐私保护
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)(下)
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)
26 2
|
11天前
|
Linux Shell Python
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)(上)
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)
18 2
|
17天前
|
Java Shell Linux
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
|
1月前
|
Linux
Linux命令行快捷键
Linux命令行快捷键
|
1月前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
2月前
|
Linux Shell 开发工具
linux】-bash:vim:未找到命令
linux】-bash:vim:未找到命令
24 0