read命令
收到键盘操作,完成人机交互式操作
用法
命令格式:
read 参数 变量名
参数:
-p:“提示信息”
-t:秒数,设置秒数,过了时间,自动加载下一行内容
-n:字符数量,设置字符数量,输入的字符数达到要求,自动下一行
-s:隐藏输入信息
#!/bin/bash
#read
#laoxu
read -p "name:" name
#设置了提示信息
echo -n "age(10s):"
read -t 10 age
echo
#age变量只有10s的写入时间
echo -n "passwd:"
read -s passwd
echo
#passwd变量输入不显示
echo -n "gender(m/w):"
read -n 1 gender
echo
#gender变量只可以输入一个字符,输入完成自动回车
echo -e "\e[33;1m******$name Personal Information *******\e[0m"
echo "name:$name"
echo "age:$age"
echo "passwd:$passwd"
echo "gender:$gender"
。。。。。。。。。。。。。。。。。。。。。。。。
[root@lx102 /sh]# bash read.sh
name:LAOX #交互
age(10s):18 #交互
passwd: #交互
gender(m/w):M #交互
******LAOX Personal Information *******
name:LAOX
age:18
passwd:123123
gender:M
read自定义变量
变量名可以自定义,如果不定义,则默认为REPLY变量名
如果只有一个变量名,那么输入的多个值,会当作整体给这个变量
如果多个变量名,输入的多个值,会一对一的赋予,剩下的值都会给最后一个变量
#!/bin/bash
echo "Please enter your Name, Age, Gender, Phone Number, Home Address"
read name age gender ph addr
echo -e "Name:$name\nAge:$age\nGender:$gender\nPhone Number:$ph\nHome Adderss:$addr"
declare声明变量
格式:
declare 【+/-】 参数 变量名
参数:
-a:声明为数组型
-i:声明为整数型
-x:声明为环境变量
-r:声明为只读
-p:查看声明变量指定类型的参数内容
-a:声明为数组型
数组变量也可以叫下标变量,我们再变量后加[],[]中加下标编号
格式:
declare -a abc=’([0]=“值” [1]=“值” [2]=“值”)’
echo ${变量名[编号]} 来查看,下标编号从0开始
[root@localhost ~]# teacher[0]=lao
[root@localhost ~]# teacher[1]=xu
[root@localhost ~]# teacher[2]=zhen
[root@localhost ~]# teacher[3]=shuai
[root@localhost ~]# echo $teacher
lao
[root@localhost ~]# echo "${teacher[*]}"
lao xu zhen shuai
[root@localhost ~]# echo "${teacher[2]}"
xu
-i:声明为整数型
-i后,可以进行运算
declare -i a=100
declare -i b=200
declare -i s=$a+$b
echo $s
300
-x:声明为环境变量
-x,与export功能相同,都是声明环境变量
可以通过env 查看
-r:声明为只读
-r,声明为只读变量,不能删除,不能更改,不能取消声明
如果想不要这个只读声明。只可以退出当前shell环境,exit