【发布时间】:2016-11-30 14:37:29
【问题描述】:
如何在 bash 中编写自动完成功能,如果我有:
mycommand first_argument|garbage
其中| 表示光标,它应该将"first_argument" 而不是"first_argumentgarbage" 传递给compgen?
在我的示例中,它的行为方式错误
COMPREPLY=( $(compgen -W "add remove list use current" -- "$cur") ) # buggy
【问题讨论】:
-
按原样,您的示例没有显示任何内容。你说的越野车是什么意思?你有完成脚本的来源吗?
$cur的内容是什么?当您将echo ${COMP_WORDS[COMP_CWORD]}放在您的COMPREPLY声明之前时,它会显示什么? -
按空格、左键、制表符?
-
@Aserre:
cur=${COMP_WORDS[COMP_CWORD]}。由于光标处没有空格,当然是first_argumentgarbage。