前言
read 是shell的内置命令,用于从标准输入中读取数据并赋值给变量。默认从键盘读取用户输入,也可以从文件中读取数据。
read选项
- -a array: 把读取的数据复制到数组,下标从0开始
- -d delimiter: 指定字符串分隔符,而不是默认的换行符
- -n num: 读取num个字符,而不是整行字符
- -p msg: 显示提示信息
- -r: 原样读取,不把反斜杠字符解释为转义字符
- -s: 静默模式,不显示输入的字符,比如输入密码的场景
- -t seconds: 设置超时时间,单位为秒。超时未输入时,返沪非0值结束执行
- -u fd: 使用文件作为输入源,而不是标准输入
示例
给多个变量赋值
read -p “input more sth … “ a b c echo “1. ${a}” echo “2. ${b}” echo “3. ${c}”
- 将输入的数据赋值给数组
```shell
read -a arr -p "input sth ... "
# 迭代数组
for i in ${arr[@]}; do
echo ${i}
done