shell read命令
- read命令 有四个选项 –p (提示语句) –n (接收的字符个数) –t (等待时间) –s (不回显)
- 基本读取
- read命令接收键盘的输入,得到输入后,将数据存放在一个标准变量中
- 上面例子中只有一个变量name,也可以有多个变量,如果输入的数据大于变量个数,那么最后的数据都给最后一个变量。如果输入数据个数小于变量个数,那么输入不会结束
- 如果不指定变量,那么read命令读入的值会被放置在系统变量REPLY中。
- 计时输入
- 使用read命令存在着潜在危险,脚本很可能会停下来一直等待用户的输入,如果无论是否输入数据脚本必须继续执行,可以通过-t 选项设定一个计时器。
- -t命令指定read命令的等待输入的秒数,当计时满时,read命令返回一个非零退出状态
- 输入个数
- -n 选项来决定输入的个数,当输入个数达到时,退出。
- -n1表示输入一个字符就退出,只要按下一个字符进行回答,read命令立即接受输入并将其传给变量。无需回车键
- 默读(输入不显示在监视器上)
- 有时候需要用户输入,但是不希望输入的数据显示在显示屏上,典型的例子就是输入密码时。
- -s选项使read命令输入的数据不显示在显示器上(实际上,数据是显示的,只是read命令将文本颜色设置为背景相同的颜色)
- 读文件
- 通过read命令读取linux系统上的文件
- 每次调用read命令都会读取文本中的“一行”文本。当文本没有可读的行时,read命令将以非零状态退出。
- 读取文件的关键是如何将文本中的数据传送给read命令。最常用的方法是对文件使用cat命令并通过管道直接传送给包含read命令的while命令
#!/usr/bin/bashread -p "please input youe name:" name;echo "hello,$name,welcome to this program!";
#!/usr/bin/bashread -t 5 -p "please input your name" nameecho $name ;
#!/usr/bin/bashread -t 5 -n1 -p "Do you want to continue?(Y/N)" answer;case $answer inY|y)echo "fine,continue";;N|n)echo "ok,goodbye";;*)echo "error choice";;esac
#!/usr/bin/bashread -t 5 -s -p "please input your password" password;echo your password is $password;
cat loop.sh|while read sentence ;doecho $sentence;done;