选项卡在bash脚本的自定义列表中完成

时间:2018-01-15 23:46:19

标签: bash autocomplete scripting

我正在编写脚本以获得有趣的信息,以便更多地了解bash如何工作,而我似乎无法找到一种方法来实现这一点。假设我有一个类似这样的脚本:

#!/bin/bash
echo "Pick an animal!
Cats
Dogs
Birds
Snakes"
read ANIMAL
echo $ANIMAL

现在说我想让它自动完成,所以当您输入S<TAB>时,它会在Snakes期间完成read。我基本上想要制作一个简单的菜单,您可以选项卡完成每个选项。有人知道吗?

1 个答案:

答案 0 :(得分:0)

如果你使用bash,read有一个选项-e,允许自动完成用户输入:

-e     If the standard input is coming from a terminal, readline 
       (see READLINE above) is used to obtain the line.  Readline  uses  
       the current (or default, if line editing was not previously active) 
       editing settings.

不幸的是,我不知道如何正确设置READLINE来定制它以提出您的4种可能的动物......因为它是在-e选项说明中写的,您必须阅读READLINE部分man bash, 更具体地说,Programmable Completion部分内置了complete bash。或等待更熟练的答案!