我尝试使用read命令来捕获用户输入的内容。
read -p "Please enter your name -> " -n 20 name
但我发现我们无法纠正我们所输入的内容。如何删除“BackSpace”而不添加?
答案 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)延伸)。