3

我尝试使用读取命令来捕捉用户输入的内容。

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

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

4

2 回答 2

4

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

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

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

于 2012-11-05T17:33:57.103 回答
0

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

name=`echo $name|col -b`

这比使用命令选项更便携-eread因为-e并非所有 Unix 系统都支持,例如 AIX(我认为它是 GNU/Linux 扩展)。

于 2012-11-05T17:37:51.107 回答