十、read 命令读取数据,并赋值给变量
read 命令
从标准输入或文件中读取一行数据,并将其拆分后赋值给一个或多个变量。它是编写交互式脚本、处理文本行时的核心工具。
语法:
read [选项] [变量名...]
- 如果不指定变量,默认将整行读入内置变量
REPLY。 - 一次读取多个变量(按空白分隔)
- 输入可以来自键盘(交互)、管道、重定向文件等。
参数说明:
| 选项 | 作用 |
|---|---|
-r |
禁止反斜杠转义(强烈推荐使用),防止反斜杠 \ 被解释为转义字符。 |
-p prompt |
设置提示信息,在输入前打印提示信息。 |
-s |
静默模式(输入不回显,用于密码),在输入字符时不再屏幕上显示,例如login时输入密码。 |
-t timeout |
设置超时秒数,在指定秒数内未输入,则命令返回非零状态码。自动退出 |
-n num |
限制输入字符数,读取指定数量的字符后,按任意键(无需回车)即继续。 |
-d delim |
指定结束分隔符(默认是换行符 \n),可以使用其他字符。 |
-a array |
读取为数组,将输入内容按分隔符分割为数组元素。 |
- -e 在输入的时候可以使用命令补全功能。
- -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
例1:
#!/bin/bash #判断用户输入 read -p "Please choose name: " -t 10 name #在屏幕上输出"请选择人名",然后把用户选择赋予变量c case $name in '小明') echo "Please choose name:" $name ;; 'wq') echo "结束了" ;; esac [root@localhost ~]# ./1.sh ./1.sh:行1: [root@localhost: 未找到命令 Please choose name: 小明 Please choose name: 小明 [root@localhost ~]# ./1.sh ./1.sh:行1: [root@localhost: 未找到命令 Please choose name: wq 结束了
"-p"选项默认不带换行功能,且也不支持"\n"换行。
本文来自博客园,作者:chao_xiong,转载请注明原文链接:https://www.cnblogs.com/chao-xiong/p/14601870.html

浙公网安备 33010602011771号