我尝试使用读取命令来捕获用户输入的内容。
read -p "Please enter your name -> " -n 20 name
,但我发现我们无法纠正我们输入的内容。如何使" backspace"删除而不添加?
最简单的方法是使用 -e
标志来读取,这将使它使用readline。
read -e -p "Please enter your name -> " -n 20 name
您还可以更改终端设置(stty),以便删除backspace。
您可以通过col -b
输送用户(或任何其他文本)输入的文本,例如:
name=`echo $name|col -b`
这比使用read
命令的选项-e
更便宜,因为在所有UNIX系统上不支持-e
,例如AIX(我认为它是GNU/Linux扩展程序)。