【发布时间】:2016-04-09 18:46:18
【问题描述】:
我是 bash 的新手,我正在尝试编写一个 bash 脚本来保存用户的输入(一些标签),以帮助这个用户我希望只允许基于我个人的预定义标签列表而不是关于常见的 TAB 文件补全(文件夹中的文件名)。
predefinedtags=(one two three four five)
echo "enter tags (separate multiple values by space)"
read -e tags
echo $tags
我希望在read 输入期间,用户可以按TAB 来完成带有预定义标签列表的单词。我认为这是一个常见的问题和方法,但我没有找到一个好的方法。我发现一些帖子对我来说有点太复杂了,他们似乎解释了这不是一个那么简单的问题。我什至不知道这是否可能。
Changing tab-completion for read builtin in bash
bash and readline: tab completion in a user input loop?
你有什么想法吗?或者可能有一种完全不同的方式来做到这一点?感谢您的帮助。
【问题讨论】:
-
这可能有点棘手,因为第一个单词作为命令完成,后面的单词作为该命令的参数完成。您可以将每个标签配置为将其视为一个命令,该命令将任何标签作为参数,但我不确定如何防止第一个单词作为一个标签以外的任何内容完成。
标签: bash