Shell命令tab自动补全的实现
一.Shell命令自动补全的实现
1.ip 命令的自动补全是如何实现的?
1.ip命令相关补全文件
/usr/share/bash-completion/completions/ip
2.加载流程
- 用户进入交互式bash(终端)
~/.bashrc中加载/usr/share/bash-completion/bash_completion/usr/share/bash-completion/bash_completion中定义了_completion_loader函数- 当对一个命令按
TAB时,如果这个命令没有补全定义,会触发_completion_loader函数,然后从/usr/share/bash-completion/completions/<command>查找对应的补全脚本并加载。 - 脚本只加载一次,一旦某个命令的补全脚本被加载,它就在当前 Shell 会话里生效,不会每次 TAB 都重新加载。