我无法弄清楚我做错了什么。我的 bash_completion 文件设置如下:
_bcd()
{
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "$(back_directory.pl --complete $cur)" -- $cur) )
}
complete -o filenames -o nospace -F _bcd bcd
back_directory.pl 是一个程序,它将返回树上的目录路径: back_directory.pl --complete Th
产生:This\ test/
但是:
22:50:24-Josh@Joshuas-MacBook-Air:~/Desktop/bcd/This test/more white/t$ bcd Th<TAB><TAB>
This test/
如上所示,它不会自动完成其中包含空格的目录(但它会显示完成选项)。
它应该如下所示:bcd This\ test/
我认为-o filenames
应该添加反斜杠来转义空格。谢谢你的帮助 :)