【发布时间】:2013-02-06 07:15:20
【问题描述】:
在我的 bashrc 中。我正在尝试 bash 完成命令 scp 如下
function _scp_complete
{
COMPREPLY=""
COMPREPLY+=( $(cat ~/.ssh_complete ) )
COMPREPLY+=( $( find . ! -name . -prune -type f ) )
}
complete -F _scp_complete scp
这个想法是,当按下scp [tab] 时,我会看到当前目录中的所有文件以及文本文件~/.ssh_complete 中列出的单词。假设该文件包含以下条目:
亚历克斯@192.0.0.1 alex@192.0.0.2
所需的行为如下:我键入scp alex@[TAB],然后制表符完成“完成”scp alex@192.0.0 的命令。自动,因为只有两个可能的参数以 alex@ 开头(假设当前工作目录中没有类似的命名文件。):
>scp alex@[TAB]
alex@192.0.0.1 alex@192.0.0.1
>scp alex@192.0.0.
我在所描述的实现中得到的行为如下:我输入 scp alex@[TAB] 并且制表符完成不完成任何事情,但在命令下方列出了所有可能的参数:
>scp alex@[TAB]
alex@192.0.0.1 alex@192.0.0.1 file1 Music Pictures ./.emacs <ALL files in the current directory>
>scp alex@
如何修复函数以获得所需的行为?
【问题讨论】:
标签: bash ubuntu autocomplete