变量的类型
1.自定义变量
定义变量:变量名 = 变量值 变量名必须以字母或者下划线开头,区分大小写
引用变量:$变量名或$(变量名)
查看变量:echo $变量名 set(所有变量:包括自定义变量和环境变量)
取消变量:unset 变量名
作用范围:仅在当前shell中有效
2.环境变量
定义环境变量:方法1 export back_dir = /home/backup 方法2 export back_dir1将自定义变量转换成环境变量
引用环境变量:$变量名或$(变量名)
查看环境变量:echo $变量名 env 例如 env | grep back_dir
取消环境变量:unset 变量名
变量作用范围:在当前shell和子shell有效
变量的赋值方式:
1.显示赋值
变量名 =变量值
示例:
[root@localhost ~]# ip=192.168.244.130 [root@localhost ~]# echo $ip 192.168.244.130
2.read 从键盘读入变量值
read 变量名
read -p “提示信息” 变量名
read -t 5 -p“提示信息” 变量名
read -n 2 变量名
[root@localhost ~]# cat ping01.sh #!/usr/bin/env bash #host_ip=192.168.244.130 read host_ip if ping -c1 $host_ip &>/dev/null;then echo "$host_ip is up" else echo "$host_ip is down" fi [root@localhost ~]# sh ping01.sh 192.168.244.130 192.168.244.130 is up
定义变量时注意事项
“” 弱引用
'' 强引用
[root@localhost ~]# echo "${name} is good" wwb is good [root@localhost ~]# echo '${name} is good' ${name} is good
·· 反引号命令替换 反引号中的命令会优先执行相当于$()
[root@localhost ~]# disk_free=`df -Ph | grep /$ | awk '{print $5}'` [root@localhost ~]# echo $disk_free 34% [root@localhost ~]# disk_free=$(df -Ph | grep /$ | awk '{print $5}') [root@localhost ~]# echo $disk_free 34%
变量的处理
[root@localhost ~]# url=www.sina.com.cn [root@localhost ~]# echo ${#url} 15 [root@localhost ~]# echo ${url#*.} sina.com.cn [root@localhost ~]# echo ${url##*.} cn [root@localhost ~]# echo ${url%.*} www.sina.com [root@localhost ~]# echo ${url%%.*} www [root@localhost ~]# echo ${url:0:5} www.s [root@localhost ~]# echo ${url:5} ina.com.cn [root@localhost ~]# echo ${url:4:7} sina.co [root@localhost ~]# echo ${url/n/N} www.siNa.com.cn [root@localhost ~]# echo ${url//n/N} www.siNa.com.cN