【SHELL】命令补全
# 指定文件 dodo_path=/home/skull/work/scripts/dodo echo "hello skull" ## COMP_WORDS 是一个 bash 内建的数组变量,它包含了当前命令行中的所有单词 # 例如,如果你输入了 dodo make,那么 COMP_WORDS 就会是 ('dodo', 'make') ## COMP_CWORD 是一个 bash 内建的整数变量,它表示 COMP_WORDS 中当前单词的索引 # 例如,如果你输入了 dodo make 并且光标在 make 之后,那么 COMP_CWORD 就会是 2, # 你已经完成了 dodo 和 make 的输入,实际在第 2 个位置(索引从 0 开始) function define_complete { # COMPREPLY 是 bash 内建的一个特殊数组,bash 会使用这个数组的内容作为补全建议显示给用户 COMPREPLY=() # echo -e "\nCOMP_CWORD: "$COMP_CWORD case $COMP_CWORD in 1) arg=`grep -w ^"usage: dodo" $dodo_path |grep -o '\[.*\]' |sed -e 's/\[//g'|sed -e 's/\]//g'` # -W "$arg" 参数告诉 compgen 从 $arg 变量中获取可能的补全选项 # -- ${COMP_WORDS[COMP_CWORD]} 参数指定了当前的部分单词,也就是用户已经输入但还没有完成的那部分单词 # compgen 会从 $arg 中选择那些以当前部分单词开头的选项,作为补全建议 COMPREPLY=($(compgen -W "$arg" -- ${COMP_WORDS[COMP_CWORD]})) ;; 2) option=`grep -w "dodo ${COMP_WORDS[COMP_CWORD - 1]}" $dodo_path |grep -o '\[.*\]' |sed -e 's/\[//g'|sed -e 's/\]//g'` COMPREPLY=($(compgen -W "$option" -- ${COMP_WORDS[COMP_CWORD]})) ;; esac } complete -F define_complete dodo
再牛逼的梦想也架不住傻逼似的坚持
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧