nothing to say.. @caizhiyuannn@gmail.com
# 格式:${var:index}
var="hello1234"
echo ${var:5}
1234
# 格式: ${var:index:length}
var="hello1234"
echo ${var:0:5}
hello
# 删除左边字符串
% 删除右边字符串
*
通配符 # 格式: ${var#*str} ${var%str*}
string="/tmp/test/dir/file.txt"
# 移除左边第一个 /
echo ${string#*/}
# 移除右面第一个 / 后面的内容, * 通配符
echo ${string%/*}
| tmp/test/dir/file.txt |
| /tmp/test/dir |
*
通配符 # 格式:${var##*str} ${var%%str*}
var="hellohello12341234"
# 左边开始贪婪匹配,执行移除
echo ${var##*3}
# 右面开始贪婪匹配,执行移除
echo ${var%%l*}
| 4 |
| he |
# 格式:${#var}
var="hello1234"
echo ${#var}
9
# 格式:${var/regex/replace}
var="hellohello12341234"
echo ${var/1234/haha}
hellohellohaha1234
# 格式: ${var//regex/replace}
var="hellohello12341234"
echo ${var//hello/haha}
hahahaha12341234
# 格式: ${!string@}
var="hellohello"
var1="haha"
echo ${!var@}
var var1
# 如果变量 var 为空,则使用指定默认值
echo ${var-"变量var为空"}
# 变量 var1 没有声明或者为空,使用指定默认值
echo ${var1:-"变量var1为空"}
# 用默认值取代变量值,无论是否为空
var2="123"
echo ${var2+"变量var2默认值"}
# 用默认值取代变量值,如果变量值为空,则保留空值
var3=""
echo ${var2:+"取代var2值"}
echo ${var3:+"var3值不为空"}
# var4 未声明则使用默认值,通知var4设置未指定默认值
echo ${var4="var4未声明"}
# var3 为空或者未声明,则使用默认值,同时设置var3为指定默认值
echo ${var3:="var3为空或没设置"}
变量var为空 |
变量var1为空 |
变量var2默认值 |
取代var2值 |
var4未声明 |
var3为空或没设置 |