在我的 .bashrc 中。我正在尝试scp
按如下方式完成命令
function _scp_complete
{
COMPREPLY=""
COMPREPLY+=( $(cat ~/.ssh_complete ) )
COMPREPLY+=( $( find . ! -name . -prune -type f ) )
}
complete -F _scp_complete scp
这个想法是,当按下时,scp [tab]
我会看到当前目录中的所有文件以及文本文件中列出的单词~/.ssh_complete
。假设此文件包含以下条目:
alex@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@
如何修复该功能以获得所需的行为?