read命令键盘读取变量的值
从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY
read从键盘读入数据,赋给变量
例1:
[root@xuegod63 ~]# read a b
hello world
[root@xuegod63 ~]# echo $a $b
hello world
read常用见用法及参数
例1:从标准输入读取一行并赋值给变量passwd
[root@xuegod63 ~]# read passwd
例2:读取多个值,从标准输入读取一行,直至遇到第一个空白符或换行符。把用户键入的第一个词存到变量first中,把该行的剩余部分保存到变量last中
例3:read -s passwd 将你输入的东西隐藏起来,值赋给passwd。这个用户隐藏密码信息
[root@xuegod63 ~]# read -s passwd
[root@xuegod63 ~]# echo $passwd
123456
例4:输入的时间限制
[root@xuegod63 ~]# read -t 2 time #超过两秒没有输入,直接退出
例5:输入的长度限制
[root@xuegod63 ~]# read -n 2 test #最多只接受2个字符
例6:使用 -r 参数输,允许让输入中的内容包括:空格、/、\、 ?等特殊字符串。
[root@xuegod63 ~]# read -r line
sdf sdf / sdfs /n
[root@xuegod63 ~]# echo $line
sdf sdf / sdfs /n
例7:-p 用于给出提示符,在前面的例子中我们使用了echo –n “…“来给出提示符
方法1:
[root@xuegod63 ~]# read -p "please input: " pass
please input: 123456
[root@xuegod63 ~]# echo $pass
123456
方法2:
[root@xuegod63 ~]# echo -n "please input: " ; read pass
please input: 123456
[root@xuegod63 ~]# echo $pass
123456
例8:read 综合实例
[root@xuegod63 ~]# vim test-read.sh #写入以下内容
#!/bin/bash read -p "请输入姓名:" NAME read -p "请输入年龄:" AGE read -p "请输入性别:" SEX cat<<eof ********************* 你的基本信息如下: 姓名: $NAME 年龄:$AGE 性别:$SEX ******************** eof
[root@xuegod63 ~]# sh test-read.sh
请输入姓名:xuegod
请输入年龄:111
请输入性别:man
*********************
你的基本信息如下:
姓名: xuegod
年龄:111
性别:man