1 bash自动补全原理
1)自动补全依赖于bash的内置命令complete
、compgen
、和/etc/bash_completioin.d
路径下的自动补全脚本。补齐功能可以通过脚本指定命令参数如何补齐。默认补全脚本在/etc/bash_completion.d
目录下。
2)一般系统中会安装bash-completion
包来更好的进行补全效果。不同版本安装位置不同,原理类似。一般会有个bash-completion
的脚本,这个脚本会在bash初始化的时候加载,获取脚本的位置可以通过/etc/profile.d/bash_completion.sh
文件查看,补全功能的配置也是通过这个脚本导入的。内容如下:
1 # shellcheck shell=sh disable=SC1091,SC2039,SC2166
2 # Check for interactive bash and that we haven't already been sourced.
3 if [ "x${
BASH_VERSION-}" != x -a "x${
PS1-}" != x -a "x${BASH_COMPLETION_VERSINFO-}" = x ]; then
4 # Check for recent enough version of bash.
5 if [ "${
BASH_VERSINFO[0]}