简介
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量,用 IFS(内部字段分隔符)变量中的字符作为分隔符。
VariableName参数指定 shell 变量的名称,shell 变量获取输入行一个字段的值。
read使用
使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。
-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个零退出状态;
[root@hadoop-slave1 shell]# bash 2.sh
please input your name:lsh
lsh
没有超时
[root@hadoop-slave1 shell]# cat 2.sh
#!/bin/bash
read -t 10 -p "please input your name:" name
echo
echo $name
[root@hadoop-slave1 shell]# bash 2.sh
please input your name:
超时,返回值也为零
[root@hadoop-slave1 shell]# echo $?
0
[root@hadoop-slave1 shell]#
read常用参数
-t 超时时间
-p 提示语句
-n 计算输入字符数(中文算几个?未测试)
-s -s选项能够使read命令中输入的数据不显示在监视器上
read功能
read 读文件
每次调用read命令都会读取文件中的”一行”文本。当文件没有可读的行时,read命令将以非零状态退出
read -e
在交互式shell命令行中启用编辑器。例如,如果编辑器是vi,则可以在输入行时使用vi命令
read –p prompt
打印提示符,等待输入,并将输入赋值给REPLY变量③
read –r line
允许输入包含反斜杠