在90年代Linux和DOS共存的年代里,Linux的Shell们有一个最微不足道但也最实用的小功能,就是命令自动补全。而DOS那个笨蛋一直到死都没学会什么叫易用。

Linux的这个微不足道的小传统一直延续至今。虽然看似微不足道,其实也极大的提高了管理员的输入效率和准确性。

如果需要在自己的脚本中实现自动补全的功能,只需要编写类似下面的一个脚本,每次用户登录后source下就可以了。

这个示例是公司的通道机上,可以根据名称来登录相关的服务器,但是服务器名称又长又难记,每次输入都很麻烦。于是有了这个自动补全脚本:

tongdaoji()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="java.vm swift.sa openstack.zf shanghai venusweb database" if [[ ${cur} == * ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
} complete -F tongdaoji e

把这个脚本放在每次登录可以自动执行的地方,比如~/.bashrc。于是以后只要输入

e o<TAB>

就可以得到

e openstack.zf

了。

在自己的base脚本中实现自动补全的更多相关文章

  1. Shell脚本中实现自动补全功能

    对于Linuxer来说,自动补全是再熟悉不过的一个功能了.当你在命令行敲下部分的命令时,肯定会本能地按下Tab键补全完整的命令,当然除了命令补全之外,还有文件名补全. Bash-completion ...

  2. emacs: 文本输入中文件目录自动补全

    emacs: 文本输入中文件目录自动补全 // */ // ]]> UP | HOME   emacs: 文本输入中文件目录自动补全 Table of Contents 1 引言 2 补全过程演 ...

  3. purcell的emacs配置中的自动补全功能开启

    标记一下,原文参看purcell的emacs配置中的自动补全功能开启 修改init-auto-complete.el文件 ;;(setq-default ac-expand-on-auto-compl ...

  4. Python 在 Terminal 中的自动补全

    为了在 Terminal 中使用 Python 更加方便,在 home 目录下添加脚本 .pythonstartup,内容如下, 然后在 .bashrc 中添加 export PYTHONSTARTU ...

  5. ZeroBrane Lua脚本编辑器代码自动补全

    简介         ZeroBrane Studio是一款支持代码提示.语法高亮.远程调试.代码分析.调试等功能的轻量级Lua IDE工具.可以去官网studio.zerobrane.com进行下载 ...

  6. vue中实现中,自动补全功能

    知识点:利用vue的基本语法实现,自动补全功能 参考博客:https://www.jb51.net/article/136282.htm 效果:在文本框中,输入相关名称,调用后台接口,将数据填充到下拉 ...

  7. source In sight 中修改自动补全快捷键方式

    点击 “options”中的“key Assi...”,找到如下 点击“Assign New Key...”之后按键盘上的指定按键就能重新设定.

  8. 在Eclipse中设置自动补全

    在Eclipse中菜单中,Window->Preferences->Java->Editor->Content Assist中的Auto activation triggers ...

  9. 学会了vim中的自动补全功能

    好开心,再也不用再多个工具之间切换了,哈哈 擦,功能太弱

随机推荐

  1. .htaccess和license文件编写

    1 .htaccess 1.1 文件的位置 默认情况下放置于根目录 1.2 .htaccess文件的编写 1.2.1 错误页面跳转 ErrorDocument + 错误码 + 跳转路径/提示文字 eg ...

  2. PLSQL数据导入

    导入数据 (1)      首先以管理员身份登录plsql; (2)      新建命令窗口 (3)      创建用户,设置帐号,密码 创建语句:create user usernameidenti ...

  3. mmtests使用简介

    1.简介 mmtests是一个可配置的测试套件,可以被MM开发者用来进行一个常规测试.理想情况下,它可以与LTP,xfstests等测试工具结合起来实现自动化测试. 2.软件组织 run-mmtest ...

  4. 动态修改PE文件图标(使用UpdateResource API函数)

    PE文件的图标存储在资源文件中,而操作资源要用到的API函数就是UpdateResource首先我们需要先了解一下ICO格式,参考资料:http://www.moon-soft.com/program ...

  5. Delphi 获取网站验证码的图片

    uses ActiveX,ComObj; procedure TfrmMain.FormCreate(Sender: TObject); begin OleInitialize(nil); end; ...

  6. win7下不能收到窗口hook消息的问题

    win7下由于UIPI的限制, 高权限进程无法收到底权限进程发来的消息, 因此对窗口消息hook时无法接收到消息,解决办法是在调用SetWindowsHookEx之前先调用ChangeWindowMe ...

  7. android使用篇(四) 注解依赖注入IOC实现绑定控件

    在android使用篇(三) MVC模式中提到一个问题: 1) 视图层(View):一般採用XML文件进行界面的描写叙述,使用的时候能够很方便的引入,可是用xml编写了,又须要在Acitvity声明而 ...

  8. Delphi控件的停靠功能

    Delphi自带的许多控件都有停靠功能,而且操作非常简单,大可不必选用第三方控件.        基本上,要进行Dock操作至少需要两个组件,一个人被附着的Dock Site组件,另一个人附在Dock ...

  9. Allegro CL Express Edition Downloads

    Allegro CL Express Edition Downloads Allegro CL Express Edition Downloads

  10. EXTJS4两个ComboBox的数据源联动,解决遇到第二个ComboBox第二次以后显示忙的状态问题

    定义如下[红色部分是后加上的,它是解决问题的关键]: var bu_store = Ext.create('Ext.data.Store', { fields: ['key', 'value'], r ...