我读了几篇文章,但是对bash脚本一无所知,我无法做我需要做的事情。就像我尝试过这样的帖子
我有以下功能.bash_alias
,只需将其CD到服务器文件夹中即可。
html() {
cd /var/www/html/$1
}
因此,html myapp
它在命令中执行cd /var/www/html/myapp
。一切都很好。我想进入下一个级别。
我想要这样做html my<TAB>
,以使其自动完成为html myapp
不对任何文件夹进行硬编码,我希望具有通常的默认自动完成行为。如果名称中有多个以我开头的文件夹,则也可以列出文件夹。请指导。
您需要编写一个完成函数(通常将其命名为_html
)。然后html
使用complete
内置功能将该功能与命令相关联:
_html() {
local cur prev words cword
_init_completion || return
COMPREPLY=($(cd /var/www/html && compgen -o dirnames -- "$cur"))
}
complete -F _html html
(注意:_init_completion
是在中定义的/usr/share/bash-completion/bash_completion
,我认为您已经(直接或通过/etc/bash_completion
)获取了此资源)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句