我已经在 SUDO 中启用了无需密码的 apt-get ,并且也需要启用它的 bash 自动完成功能,但是该如何操作呢?
If i try to source that file:
%> . /etc/bash_completion.d/apt
No command 'have' found, did you mean:
Command 'vave' from package 'lipsia' (universe)
Command 'havp' from package 'havp' (universe)
Command 'haxe' from package 'haxe' (universe)
Command 'dave' from package 'libhttp-dav-perl' (universe)
Command 'save' from package 'atfs' (universe)
have: command not found
No command 'have' found, did you mean:
Command 'vave' from package 'lipsia' (universe)
Command 'havp' from package 'havp' (universe)
Command 'haxe' from package 'haxe' (universe)
Command 'dave' from package 'libhttp-dav-perl' (universe)
Command 'save' from package 'atfs' (universe)
have: command not found
答案1
该函数have()
在 中定义/etc/bash_completion
,因此无法/etc/bash_completion.d/apt
单独执行。
我认为你需要运行命令
. /etc/bash_completion
然后它将执行目录中的所有完成脚本/etc/bash_completion.d
。
但是,我不确定你为什么需要这样做。在我的系统(natty 和 oneiric)上,apt-get
无论有没有 , 的补全都可以正常工作sudo
。
答案2
从您的提示来看,您似乎正在使用zsh
,这是真的吗?
bash-completion
,正如其名称所示,是 的补全bash
,因此不能保证它也能用于其他 shell,尽管它与 部分兼容bash
。