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 # 补一个换行,让提示符后光标换行
💬 评论