(1)dirname——取变量值中路径

(2)basename——取变量值中文件名

(1)%——从右到左删除指定格式字符串

注:*为通配符,可理解为有且什么都行
(2)%%——从右到左最大删除指定格式字符串

(3)#——从左到右删除指定格式字符串

(4)##——从左到右最大删除指定格式的字符串

(5)/——替换第一个找到的

(6)//——替换所有符合的

此处,我将变量分为三种状态:一、已经赋值且不为空,二、未赋值,三、已经赋值且为空
(1)-与:-
#[]在此处表示二选一且必选
echo "${变量名[:-|-]替换值}"
a. :-表示如果前面变量未赋值或为空则输出符号后值(不改变符号前变量值),否则输出前变量值

b. -符号表示如果前面变量未赋值则输出符号后值,否则输出前变量值

(2)+与:+
#[]在此处表示二选一且必选
echo "${变量名[+|:+]替换值}"
a. :+表示如果前面变量赋值则输出符号后值,否则输出变量值

b. +符号表示如果前面变量已赋值或为空则输出符号后值,否则输出变量值

(3)=与:=
#[]在此处表示二选一且必选
echo "${变量名[=|:=]替换值}"
a. :=会改变符号前变量值但其他几种不会,机制为变量未赋值或为空时输出:=后的数据并将该数据赋值给前变量

b. =符号忽略空值处理

(4)?与:?
#[]在此处表示二选一且必选
echo "${变量名[?|:?]替换值}"
a. ?表示前变量未赋值则输出后替换值

b. :? 表示前变量未赋值或为空值则输出后替换值


示例如下:

注:

(1)普通数组——下标默认从0开始递增1
#数组定义(批量赋)
a=(value1 value2 value3 ... valuen)
#数组定义(单个)
a[下标]=value
示例如下:

(2)关联数组——下标可以设置为字符串
#关联数组声明
declare -A 关联数组名
示例如下:

(3)数组查看




查看普通数组信息:declare -a

查看关联数组信息:declare -A
