Bash:自动完成,回声和光标移动

时间:2015-11-02 20:00:58

标签: bash autocomplete echo compgen

我正在尝试编写自动完成脚本。它还应该输出一些描述。我有一个功能来管理自动完成和获取描述。自动完成相关部分工作正常但我有一个问题,当我想显示帮助。简而言之,这就是我现在所拥有的:

$> myFunction -myOption1<TAB>
Description for myOption1<CURSOR>

我喜欢什么:

$> myFunction -myOption1<TAB>
Description for myOption1 
$> myFunction -myOption1<CURSOR>

自动完成和输出之间没有冲突。只有myOption1完成后才能显示说明。 (myOpt将作为myOption1完成,因此不显示描述)。我做了好几次试图使它工作,但我想我错过了一步。 “myOption1的描述”是一个“回声”。我认为它是相关的,因为 compgen 正在等待一些值(我暂时没有给它)。我试图用一些转义字符,空格来欺骗compgen:没有成功。此描述后,自动完成脚本应继续运行。

提前感谢您的帮助; - )

Kol的

1 个答案:

答案 0 :(得分:0)

我会做什么:

  1. 在每种情况下都设置COMPREPLY(你不想搞砸它)。 (搬出其他地方)
  2. 在弄乱屏幕之前,我会在回声之前做tput sc,之后做tput rc。请注意,如果您的终端由于您的回声而滚动,那么仍然会搞砸您的屏幕