我试图建立的bash完成了实用剧本我写的,所以我加了下面的脚本/etc/bash_completion.d:bash补防止退格
_mcd()
{
local cur words
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
words=`mcd-completion-words`
COMPREPLY=($(compgen -W "${words}" -- "$cur"))
return 0
}
complete -F _mcd mcd
的mcd-completion-words
脚本编程发现可用的运算符为命令。当我重新启动bash(或源代码脚本)时,我可以成功完成标签,但如果我这样做了,我不能再退格一个完整的字符。另外,如果我尝试列出所有选项(例如,我试图将选项卡填充到w /没有适当的词),bash会向该命令添加一个选项卡,我也不能退格。
如何让bash模仿正常的文件完成行为?任何帮助表示赞赏。谢谢!
这是一个简化的mcd-completion-words的测试用例,它仍然表现出相同的行为。奇怪的是,丹尼斯的案例也适用于我(例如,当用文字替换=“一二三”时)。
#!/usr/bin/env php
<?php
print "one two three four five six seven eight nine";
当我做'词=“一些测试词”'它似乎工作。请发布'mcd-completion-words'的内容。问题可能在那里。 – 2010-09-13 18:14:14
我在Ubuntu 11.10上遇到了完全相同的问题。 – scribu 2011-10-04 00:58:53