Linux Shell命令自动补全的实现

背景介绍

最近在完成一个由linux shell脚本编写的工具时,发现在实现多个功能时,冗长的多个参数不仅难记而且大小写混杂,虽然“悉心”地写了完备的'-h'帮助文档,但是为了实现其中一个功能,仍然需要输入多个冗长的字符串来定位某个大选项下的小选项所对应的功能。

实现思路

在 linux shell 下本身有着体验极佳的命令补全功能,即。现通过自定义该程序的命令补全脚本实现命令补全。

基础介绍complete (补全命令)

重点说明

compgen(筛选命令)

用来筛选生成匹配单词的候选补全结果

重点说明:

compopt(修改补全命令设置)

用于修改补全命令设置,这个命令必须在补全函数中使用,否则会报错

重点说明:

内置补全变量

除了上面三个命令外,Bash还有几个内置变量来辅助补全功能,如下:

实例

注:本示例只针对实际应用场景做了简单实现,做个思路引子。更多强大功能请自行研究( • ̀ω•́ )✧

complete_tool.sh :

Before:

导入补全脚本:

再次尝试

结语

可将编写好的脚本在用户根目录中进行调用,亦可放于下,这样在下次登录终端时即可自动自动补全脚本。

祝大家元旦快乐!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181231G16PHD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励