调用“读取”时获取自动完成功能在 Bash 脚本中
在我的 Bash 脚本中,我正在使用 read
读取用户输入的一些变量:
read -p "Glassfish Path:" GF_DIR
现在我希望用户在必须输入目录时获得自动完成功能,就像您在 Bash shell 中一样。因此,当他输入目录的第一个字母时,他可以通过按 TAB 键自动完成它。 这可能吗?
Inside my Bash script, I'm reading some variables entered by the user with read
:
read -p "Glassfish Path:" GF_DIR
Now I want that the user gets a autocompletion when he has to enter a directory, like when you are on the Bash shell. So when he enters the first letters of a directory, he can autocomplete it by hitting TAB.
Is that possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试:
-e
启用 readline:Try:
-e
enables readline:bash 脚本中的本机
readline
只能选择使用本机完成。如果想要添加自定义完成,一种方法是将mode与bind结合使用。
这是一种“低级”方法,必须做更多的工作,例如通过拆分单词、查找当前单词等来解析输入。
人们仍然可以使用诸如compgen之类的东西> 和打印选项,修改输入行等。
简而言之(相当幼稚的示例):
Native
readline
in bash-scripts only have the option to use the native completion.If one want to add custom completion, one way is to use mode with bind.
It is a "low level" approach and one have to do more work like parsing input by for example splitting into words, find current word etc.
One can still use things like
compgen
and print options, modify the input line etc.In short (rather naive example):