欢迎各位兄弟 发布技术文章
这里的技术是共享的
read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY
变量:指定读取值的变量名。
下面的列表给出了read命令的常用方式:
从标准输入读取输入并赋值给变量1987name。
等待一组输入,每个单词之间使用空格隔开,直到回车结束,并分别将单词依次赋值给这三个读入变量。
REPLY示例
-p选项示例
等待控制台输入,并将输入信息视为数组,赋值给数组变量friends,输入信息用空格隔开数组的每个元素。
补充一个终端输入密码时候,不让密码显示出来的例子。
方法1:
方法2:
其中,选项-echo
禁止将输出发送到终端,而选项echo
则允许发送输出。
使用read命令从键盘读取变量值,并且将值赋给指定的变量,输入如下命令:
执行上面的指令以后,要求键入两个数据,如下所示:
完成之后,可以使用echo命令将指定的变量值输出查看,输入如下命令:
执行输出变量值的命令以后,将显示用户所输入的数据值,如下所示:
注意:使用echo命令输出变量值时,必须在变量名前添加符号$
。否则,echo将直接输出变量名。
来自 http://man.linuxde.net/read
read命令:
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
1)read后面的变量var可以只有一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给最后一个变量
-p read –p “提示语句”,则屏幕就会输出提示语句,如下图
当变量个数和输入个数一样时:
注意空格,要不会出错
当变量个数和输入个数不一样时,即输入个数比变脸个数多,则多的都赋给最后一个变量:
2)命令计数
-n
read –n 个数
设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量
看一下cc.sh脚本的内容:
read –n 1的意思是只接受一个字符
执行
这里输入y后不用回车,自己就执行
3)等待时间
-t 时间
read –t 时间
使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;
看一下cc.sh脚本的内容:
执行cc.sh然后等待超过5s,发现自动退出了
4)关闭回显
-s
read –s
-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色),比如密码
看一下cc.sh的脚本内容
执行,看到输入密码的时候屏幕不显示
6)从文本读取内容并且赋给变量