shell脚本中大括号的特殊用法
${#VARNAME} 获取变量的长度
[root@mysqlserver01 ~]# echo ${#var_name} #var_name是未定义的变量
0
[root@mysqlserver01 ~]# var_name=“abcd”
[root@mysqlserver01 ~]# echo ${#var_name}
4
${VARNAME#.} 删除第一个.以及它之前的内容,就是保留第一个.后面的内容。.是可以 用任意字符替换
[root@mysqlserver01 ~]# dir_path=“123/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path#/}
opt/abc/f1.txt
[root@mysqlserver01 ~]# dir_path=“aaa/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path#*/}
opt/abc/f1.txt
${VARNAME##.} 删除最后一个.以及它之前的内容,就是保留最后一个.后面的内容。
[root@mysqlserver01 ~]# dir_path=“aaa/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path##/}
f1.txt
${VARNAME%.} 删除最后一个.以及它之后的内容,就是保留最后一个.前面的内容。
[root@mysqlserver01 ~]# dir_path=“aaa/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path%/}
aaa/opt/abc
${VARNAME%%.} 删除第一个.以及它之后的内容,就是保留第一个.前面的内容。
[root@mysqlserver01 ~]# dir_path=“aaa/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path%%/}
aaa
${VARNAME/OLD/NEW} 将变量中的第一个OLD替换成NEW
[root@mysqlserver01 ~]# dir_path=“aaa/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path/a/A}
Aaa/opt/abc/f1.txt
${VARNAME//OLD/NEW} 将变量中的所有OLD替换成NEW
[root@mysqlserver01 ~]# dir_path=“aaa/opt/abc/f1.txt”
[root@mysqlserver01 ~]# echo ${dir_path//a/A}
AAA/opt/Abc/f1.txt
补充:“*”表示通配符ÿ