前言

read 是shell的内置命令,用于从标准输入中读取数据并赋值给变量。默认从键盘读取用户输入,也可以从文件中读取数据。

read选项

  • -a array: 把读取的数据复制到数组,下标从0开始
  • -d delimiter: 指定字符串分隔符,而不是默认的换行符
  • -n num: 读取num个字符,而不是整行字符
  • -p msg: 显示提示信息
  • -r: 原样读取,不把反斜杠字符解释为转义字符
  • -s: 静默模式,不显示输入的字符,比如输入密码的场景
  • -t seconds: 设置超时时间,单位为秒。超时未输入时,返沪非0值结束执行
  • -u fd: 使用文件作为输入源,而不是标准输入

示例

  • 将输入的数据赋给变量 ```shell

    提示input sth … ,将用户输入赋给变量a

    read -p “input sth … “ a echo $a

给多个变量赋值

read -p “input more sth … “ a b c echo “1. ${a}” echo “2. ${b}” echo “3. ${c}”

  1. - 将输入的数据赋值给数组
  2. ```shell
  3. read -a arr -p "input sth ... "
  4. # 迭代数组
  5. for i in ${arr[@]}; do
  6. echo ${i}
  7. done