如何让自定义程序limitcpu支持PATH路径下的Bash自动补全?
解决自定义命令
limitcpu的PATH补全问题 这个问题我之前也碰到过,Bash默认只会给内置命令或系统自带命令配置好PATH下的程序补全规则,自定义命令得手动设置才行,这里有两种简单的解决方法:
方法一:快速绑定默认命令补全规则
直接用Bash的complete命令给limitcpu绑定命令名补全规则,步骤如下:
- 打开你的Bash配置文件(比如
~/.bashrc或者~/.bash_profile) - 在文件末尾添加一行:
complete -c limitcpu - 保存文件后,执行以下命令让配置立即生效:
source ~/.bashrc - 现在试试输入
limitcpu pyth<tab>,应该就能自动补全成limitcpu python了
方法二:自定义补全函数(适合后续扩展)
如果之后你需要给limitcpu添加更复杂的补全规则(比如后面还要补全其他参数),可以写一个自定义补全函数:
- 同样打开
~/.bashrc,添加以下内容:_limitcpu_completion() { # 获取当前输入的最后一个参数 local current_input=${COMP_WORDS[COMP_CWORD]} # 生成PATH中所有匹配当前输入的可执行命令列表 COMPREPLY=( $(compgen -c -- "$current_input") ) } # 把补全函数绑定到limitcpu命令上 complete -F _limitcpu_completion limitcpu - 执行
source ~/.bashrc生效配置,测试补全效果和方法一一样
原理说明
compgen -c会列出所有在PATH环境变量目录下的可执行程序,和which命令查找程序的逻辑一致complete命令的作用是把指定的补全规则(或函数)绑定到目标命令上,让Bash知道该用什么规则来补全这个命令的参数
内容的提问来源于stack exchange,提问作者chew socks
相关产品推荐
相关产品推荐

