监测网站空白栏目邯郸本地网络设计
2 变量进阶
2.1 变量实践
2.1.1 高级赋值
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
	所谓的高级赋值,是另外的一种变量值获取方法,这里涉及到更多我们学习之外的一些shell内置变量格式,其实这部分的内容主要还是在字符串的基础上,如何更精细的获取特定的信息内容:主要涉及到的内容样式如下:
 
字符串截取按分隔符截取: # 右  % 左${file#/}	   	删除匹配结果,保留第一个/右边的字符串${file##/}		删除匹配结果,保留最后一个/右边的字符串${file%/}		删除匹配结果,保留第一个/左边的字符串${file%%/}		删除匹配结果,保留最后一个/左边的字符串注意:匹配内容的正则表达式,尽量不要出现特殊边界字符
 
字符串替换${file/dir/path}	把第一个dir替换成path:/path1/dir2/dir3/n${file//dir/path}	把所有dir替换成path:/path1/path2/path3/n${file/#dir/path} 	将从左侧能匹配到的dir,则替换成 path 然后返回;否则直接返回 ${var}。${file/%dir/path} 	将从右侧能匹配到的dir,则替换成 path 然后返回;否则直接返回 ${var}。注意:如果匹配内容使用的是正则符号,应该注意正则符号的写法
 
字符串转换${file^^}		把file中的所有小写字母转换为大写${file,,}		把file中的所有大写字母转换为小写
 
简单实践
实践1-字符串截取
字符串截取示例
[root@localhost ~]# string=abc12342341
[root@localhost ~]# echo ${string#a*3}
42341
[root@localhost ~]# echo ${string#c*3}
abc12342341
[root@localhost ~]# echo ${string#*c1*3}
42341
[root@localhost ~]# echo ${string##a*3}
41
[root@localhost ~]# echo ${string%3*1}
abc12342
[root@localhost ~]# echo ${string%%3*1}
abc12
 
字符串截取赋值
[root@localhost ~]# file=/var/log/nginx/access.log
[root@localhost ~]# filename=${file##*/}
[root@localhost ~]# echo $filename
access.log
[root@localhost ~]# filedir=${file%/*}
[root@localhost ~]# echo $filedir
/var/log/nginx
 
实践2-字符串替换
字符串替换示例
[root@localhost ~]# str="apple, tree, apple tree, apple"
[root@localhost ~]# echo ${str/apple/APPLE}
APPLE, tree, apple tree, apple
[root@localhost ~]# echo ${str//apple/APPLE}
APPLE, tree, APPLE tree, APPLE
[root@localhost ~]# echo ${str/#apple/APPLE}
APPLE, tree, apple tree, apple
[root@localhost ~]# echo ${str/%apple/APPLE}
apple, tree, apple tree, APPLE使用正则的情况下,代表尽可能多的匹配
[root@localhost ~]# file=dir1@dir2@dir3@n.txt
[root@localhost ~]# echo ${file/#d*r/DIR}
DIR3@n.txt
[root@localhost ~]# echo ${file/%3*/DIR}
dir1@dir2@dirDIR
 
实践3-字符串转换
[root@localhost ~]# str="apple, tree, apple tree, apple"
[root@localhost ~]# upper_str=${str^^}
[root@localhost ~]# echo ${upper_str}
APPLE, TREE, APPLE TREE, APPLE
[root@localhost ~]# lower_str=${upper_str,,}
[root@localhost ~]# echo ${lower_str}
apple, tree, apple tree, apple
 
小结
