在自己的base脚本中实现自动补全


在自己的base脚本中实现自动补全
 
在90年代Linux和DOS共存的年代里,Linux的Shell们有一个最微不足道但也最实用的小功能,就是命令自动补全。而DOS那个笨蛋一直到死都没学会什么叫易用。
 
Linux的这个微不足道的小传统一直延续至今。虽然看似微不足道,其实也极大的提高了管理员的输入效率和准确性。
 
如果需要在自己的脚本中实现自动补全的功能,只需要编写类似下面的一个脚本,每次用户登录后source下就可以了。
 
这个示例是公司的通道机上,可以根据名称来登录相关的服务器,但是服务器名称又长又难记,每次输入都很麻烦。于是有了这个自动补全脚本:
 
[plain] 
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
 
了。

相关内容

    暂无相关文章