Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash读取命令_Bash_Shell - Fatal编程技术网

bash读取命令

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命令捕获用户输入的内容

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扩展)