bash读取命令
我尝试使用read命令捕获用户输入的内容bash读取命令,bash,shell,Bash,Shell,我尝试使用read命令捕获用户输入的内容 read -p "Please enter your name -> " -n 20 name 但我发现我们无法纠正我们已经进入的情况。如何使“BackSpace”删除而不是添加?最简单的方法是使用-e标志进行读取,这将使其使用readline read -e -p "Please enter your name -> " -n 20 name 您还可以更改终端设置(stty),以便擦除backspace而不是delete。您可以通过管道
read -p "Please enter your name -> " -n 20 name
但我发现我们无法纠正我们已经进入的情况。如何使“BackSpace”删除而不是添加?最简单的方法是使用
-e
标志进行读取,这将使其使用readline
read -e -p "Please enter your name -> " -n 20 name
您还可以更改终端设置(stty),以便擦除backspace而不是delete。您可以通过管道将用户输入的文本(或任何其他文本)通过
列-b
,例如:
name=`echo $name|col -b`
这比使用read
命令的-e
选项更便于移植,因为并非所有Unix系统都支持-e
,例如AIX(我认为它是GNU/Linux扩展)