最近改代码,发现很多奇怪的shell赋值语句。Google没有查到,只好自己实验。现在总结如下。
# string="HelloMyFirstShell"
计算字符串长度。
# len=${#string}
# echo $len
17
截取字符串。截取从第5个字符到最后一个字符的子串。
# substr1=${string:5}
# echo $substr1
MyFirstShell
截取字符串。截取从第5个字符以后7个字符长度的子串。
# substr2=${string:5:7}
# echo $substr2
MyFirst
去掉字符。去掉字符串中遇见的第一个l。
# substr3=${string/l}
# echo $substr3
HeloMyFirstShell
去掉子串。去掉遇见的第一个"My"子串。
# substr3=${string/My}
# echo $substr3
HelloFirstShell
去掉子串。去掉遇见的第一个S以后的子串。
# substr3=${string/S*}
# echo $substr3
HelloMyFirst
去掉遇见的第一个l以后的子串。
# substr3=${string/l*}
# echo $substr3
He
给变量赋默认值。如果weekday为空,使用"Mon"作为默认值。
# weekday=Fri
# today=${weekday:-Mon}
# echo $today
Fri
# weekday=
# today=${weekday:-Mon}
# echo $today
Mon
如果weekday为空,使用startday中的字符串作为默认值。
# weekday=Fri
# startday=Mon
# today=${weekday:-${startday}}
# echo $today
Fri
# weekday=
# today=${weekday:-${startday}}
# echo $today
Mon