变量内容的替换,替换不影响原变量内容。
1, 定义一个变量进行演示
1
| url=https://www.x-pua.cn
|
2, 替换x-pua为baidu
1 2
| [root@ibrahim ~] https://www.baidu.cn
|
3, 替换第一个w为大写W
1 2
| [root@ibrahim ~] https://Www.x-pua.cn
|
4, 替换所有w为大写W
1 2
| [root@ibrahim ~] https://WWW.x-pua.cn
|
为变量设置默认值
1, 下列变量作为举例使用
1 2 3 4 5 6 7 8
| -- url1变量没有定义 -- [root@ibrahim ~]
-- url2变量为www.deepin.org -- [root@ibrahim ~] www.deepin.org -- url3变量定义了,但是为空 -- [root@ibrahim ~]
|
2, 为未定义变量和空值变量设置默认值
1 2 3 4 5 6 7 8 9
| -- 由于url1变量没有定义,所以默认值会生效 -- [root@ibrahim ~] www.x-pua.cn -- 由于url2有自己的变量,所以默认值不会生效 -- [root@ibrahim ~] www.deepin.org -- 由于url3变量为空值,所以默认值会生效 -- [root@ibrahim ~] www.x-pua.cn
|
3, 通过实际需求来验证默认值的作用
1 2 3 4 5
| [root@ibrahim ~]
read -p '请输入您要查询的ip: ' ip ping -c 1 ${ip} &> /dev/null && echo "${ip} is alive"
|
下面来执行一下这个脚本看看效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| -- 手动输入可用ip -- [root@ibrahim ~] 请输入您要查询的ip: 114.114.114.114 114.114.114.114 is alive -- 什么也不输入直接回车 -- [root@ibrahim ~] 请输入您要查询的ip: [root@ibrahim ~] **可以看到,不手动指定ip什么结果也不会返回。下面让我们来为变量ip设置一个默认值** [root@ibrahim ~]
read -p '请输入您要查询的ip: ' ip ping -c 1 ${ip:-8.8.8.8} &> /dev/null && echo "${ip:-8.8.8.8} is alive" **再次来执行一下这个脚本** -- 手动指定需要查询的ip -- [root@ibrahim ~] 请输入您要查询的ip: 9.9.9.9 9.9.9.9 is alive -- 什么也不输入直接回车 -- [root@ibrahim ~] 请输入您要查询的ip: 8.8.8.8 is alive
|
可以看到这时候变量ip已经拥有默认值了!
这个默认值还是很有用的,可以避免一些脚本不必要的bug。
还可以提高数据的安全性,例如数据库相关脚本,where “条件”=“” 有可能会酿成大祸哦!