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若之前为空那么在命令执行完之后会被赋予右侧的值。