read命令

read命令用于从标准输入中读取单行数据。当读到文件结束符时,exit code为1,否则为0。

参数说明

  • -p: 后面可以接提示信息
  • -t:后面跟秒数,定义输入字符的等待时间,超过等待时间后会自动忽略此命令

实例:

read name  # 读入name的值
acwing yxc  # 标准输入
echo $name  # 输出name的值
acwing yxc  #标准输出

read -p "Please input your name: " -t 30 name  # 读入name的值,等待时间30秒
Please input your name: acwing yxc  # 标准输入
echo $name  # 输出name的值
acwing yxc  # 标准输出

其它常用参数

参数 说明
-s 静默模式,输入的内容不回显在屏幕上(典型用途:读取密码)
-n N 只读入 N 个字符就自动返回,不必等按回车
-a arr 把一整行按空白拆分读入数组 arr
-d delim 用指定字符作为本行的结束符,代替换行符
-u fd 从文件描述符 fd 读取,常配合 exec N<file 逐行读文件

两个小细节:

  • read 后面不写变量名时,读入的内容会存进默认变量 $REPLY
  • 一次读入多个变量时,按空白从左到右依次分配;变量多则最后一个变量吞掉剩余全部内容,变量少则多余的输入被丢弃。
read -s -p "Password: " pwd  # 输入不回显,提示符照常显示
echo  # 补一个换行,让提示符后光标换行

项目分区导航expr命令 ⬅️ | 12-read命令 | ➡️ echo命令