【RHCA+】替换变量
“ 目录:RHCA+ -> 5 Shell脚本 -> 6-5 替换变量 ”
对变量的值进行修改后输出,切割字符串;语法格式:${变量名:操作符关键词}
操作符 | 作用 |
# | 从头开始删除关键词前的内容,最短匹配 #在大括号最左边时,表示获取变量中字符串的长度 |
## | 从头开始删除关键词前的内容,最长匹配 |
% | 从尾开始删除关键词后的内容,最短匹配 |
%% | 从尾开始删除关键词后的内容,最长匹配 |
/a/b | 从头开始将找到的第一个a替换为b |
//a/b | 将所有的a替换为b |
:a | 从a的后一个字符开始取值 |
:a:b | 从a的后一个字符开始,取b长度的字符 |
[root@wuzuniao ~]# A=$(head -1 /etc/passwd) #将命令的执行结果赋给变量
[root@wuzuniao ~]# echo $A #输出变量的值
root:x:0:0:root:/root:/bin/bash
[root@wuzuniao ~]# echo ${A#*:} #删除从头开始匹配到的第一个关键词:前面的内容后输出
x:0:0:root:/root:/bin/bash
[root@wuzuniao ~]# echo ${A##*:} #删除从头开始匹配到的最后一个关键词:前面的内容后输出
/bin/bash
[root@wuzuniao ~]# echo ${A%:*} #删除从尾开始匹配到的第一个关键词:后面的内容后输出
root:x:0:0:root:/root
[root@wuzuniao ~]# echo ${A%%:*} #删除从尾开始匹配到的最后一个关键词:后面的内容后输出
root
[root@wuzuniao ~]# echo ${A/root/wuzuniao} #从头开始将找到的第一个root替换为wuzuniao
wuzuniao:x:0:0:root:/root:/bin/bash
[root@wuzuniao ~]# echo ${A//root/wuzuniao} #从头开始将找到的所有root替换为wuzuniao
wuzuniao:x:0:0:wuzuniao:/wuzuniao:/bin/bash
[root@wuzuniao ~]#
[root@wuzuniao ~]# A=/root/bin/aaa #定义变量
[root@wuzuniao ~]# echo ${A##*/} #截取最后一部分;获取文件名
aaa
[root@wuzuniao ~]# echo ${A##/} #匹配全部/,但只保留第一次匹配到的字符右边内容
root/bin/aaa
[root@wuzuniao ~]# echo ${A%/*} #从右往左匹配,保留第一次匹配到的字符左边的内容;获取文件对应目录
/root/bin
[root@wuzuniao ~]#
[root@wuzuniao ~]# A=abcdefg #定义变量
[root@wuzuniao ~]# echo ${#A} #查看变量有几个字符
7
[root@wuzuniao ~]# echo ${A:3} #从字符串第3位的后一位开始取值,获取剩下所有字串
defg
[root@wuzuniao ~]# echo ${A:3:2} #从字符串第3位的后一位开始取值,获取2位字串
de
[root@wuzuniao ~]#
