shell变量

变量的类型

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
原文地址:https://www.cnblogs.com/weiwenbo/p/6700115.html