在Bash中预填充提示

时间:2011-02-17 13:58:06

标签: bash

编写一个bash脚本,我想获得用户输入。真棒,

read -p "What directory should we save in? " -e FOLDER

除了我想做的事情,理想情况,让用户看到类似的内容:

What directory should we save in? /home/user/default/

将光标放在行尾,以及向后或附加或删除的能力。基本上,预填充用户的输入,但让他们能够编辑它。

Readline显然具有该功能,但似乎没有在read命令中公开。任何替代品?我宁愿不必使用perl等。

我正在努力的约束是我正在编写一个很好的广泛传播的shell脚本,所以应该尽可能少地依赖于预先存在的基础架构。 rlwrapread -i工作如果他们的依赖关系(rlwrap和bash版本>>无论我分别拥有什么)都可用。两个好的答案,选择适合你的。

2 个答案:

答案 0 :(得分:12)

$ read -p "What directory should we save in? " -i "/home/user/default/" -e FOLDER
What directory should we save in? /home/user/default/

这应该有用,对吧?

答案 1 :(得分:0)

您可以将命令包装在rlwrap中,该命令提供即时读取线功能:http://utopia.knoware.nl/~hlub/rlwrap/#rlwrap

(rlwrap -P做你想要的)

至于纯粹的bash解决方案涉及3.2线(我假设你正在使用),我不认为它可能