bash读命令

时间:2012-11-05 17:30:11

标签: bash shell

我尝试使用read命令来捕获用户输入的内容。

read -p "Please enter your name -> " -n 20 name

但我发现我们无法纠正我们所输入的内容。如何删除“BackSpace”而不添加?

2 个答案:

答案 0 :(得分:4)

最简单的方法是使用-e标志进行读取,这将使其使用readline。

read -e -p "Please enter your name -> " -n 20 name

您还可以更改终端设置(stty),以便删除退格而不是删除。

答案 1 :(得分:0)

您可以通过col -b管道用户输入的文字(或任何其他文字),例如:

name=`echo $name|col -b`

这比使用-e命令的选项read更便携,因为所有Unix系统都不支持-e,例如AIX(我认为它是GNU / Linux)延伸)。