len1=${#str1}
len2=${#str2}
依据有冒号和无冒号我将其分为两大类:
无冒号 | 有冒号 |
---|---|
+ | :+ |
- | :- |
= | := |
? | :? |
jelly@X:~$ echo ${aaa:-$PWD}
/home/jelly
jelly@X:~$ echo $aaa
jelly@X:~$ aaa=aaa
jelly@X:~$ echo ${aaa:-$PWD}
aaa
jelly@X:~$ echo $aaa
aaa
jelly@X:~$ echo ${bbb=$PWD}
/home/jelly
jelly@X:~$ echo $bbb
/home/jelly
echo ${var=$PWD} echo ${var:-$PWD}
=和:-的输出结果相同,当var的值是空的时候,则输出右侧的值,var不为空的时候,输出var的。但是:-并不会对var进行赋值,而var若之前为空那么在命令执行完之后会被赋予右侧的值。