问题 bash 完成 apt-get 12.10

问题 bash 完成 apt-get 12.10

我在完成和 sudo apt-get 方面遇到了一个恼人的问题。

举个例子:

$ sudo apt-get in[Tab][Tab]    
in                           intel_bios_reader
includeres                   intel_disable_clock_gating
indicator-multiload          intel_dpio_read
info                         intel_dpio_write
infobrowser                  intel_error_decode
infocmp                      intel_forcewaked
infokey                      intel_gpu_abrt
infotocap                    intel_gpu_time
inimf                        intel_gpu_top
init                         intel_gtt
init-checkconf               intel_l3_parity
initctl                      intel_reg_checker
initctl2dot                  intel_reg_dumper
initex                       intel_reg_read
inkscape                     intel_reg_snapshot
inkview                      intel_reg_write
inputattach                  intel_sprite_on
insmod                       intel_stepping
install                      intel_upload_blit_large
install-docs                 intel_upload_blit_large_gtt
installfont-tl               intel_upload_blit_large_map
install-info                 intel_upload_blit_small
installkernel                interdiff
--More--

仅使用 apt-get 或以 root 身份执行均可正常工作:

$ apt-get in[Tab]stall
$ sudo -i
[sudo] password for davide: 
root@brenna:~# apt-get in[Tab]stall

那么问题出在 sudo 之后使用自动完成功能吗?其实不然,因为

$ sudo apt-[Tab][Tab]
apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

总而言之,问题似乎在于同时使用 sudo 和程序选项的自动完成功能。

对此有什么好的建议吗?

答案1

我发现了问题。

那是因为我

complete -cf sudo

在我的 ~/.bashrc 中。

我真的不知道这是什么意思,但我很确定很久以前我就添加了它,以便使自动完成功能与 sudo 一起工作。

我认为新版本不再需要它了,这是一个好消息!:D

所以,这个问题解决了。

相关内容