Bash 中的字符串变量
s="1234567890"
echo ${s} # 1234567890
echo ${s:0:5} # 12345
echo ${s:1:5} # 23456
echo ${s:1: -1} # 23456789
echo ${s: -5: 3} # 678
echo ${s: -5: -3} # 67
echo ${s:3} # 4567890
echo ${s: -3} # 890
echo ${s::3} # 123
echo ${s:: -3} # 1234567
echo ${#s} # 10(字符数)
echo
s="aaabbbccc"
echo ${s} # aaabbbccc
echo ${s#a} # aabbbccc 去掉开头的 a
echo ${s#aaa} # bbbccc 去掉开头的 aaa
echo ${s#b} # aaabbbccc 去掉开头的 b
echo ${s#*b} # bbccc 去掉开头的 *b
echo ${s##*b} # ccc 去掉开头的 *b,贪婪模式
echo ${s##*b?} # cc 去掉开头的 *b?,贪婪模式
echo ${s%c} # aaabbbcc 去掉尾部的 c
echo ${s%ccc} # aaabbb 去掉尾部的 ccc
echo ${s%b} # aaabbbccc 去掉尾部的 b
echo ${s%b*} # aaabb 去掉尾部的 b*
echo ${s%%b*} # aaa 去掉尾部的 b*,贪婪模式
echo ${s%%?b*} # aa 去掉尾部的 ?b*,贪婪模式
### $ 是变量前缀,在键盘上,# 在 $ 之前,所以表示去掉头部的内容,% 在 $ 之后,所以表示去掉尾部的内容,## 比 # 多一个 #,所以表示贪婪模式,%% 比 % 多一个 %,所以表示贪婪模式。
echo
s="Hello Hey Hi HHH"
echo ${s} # Hello Hey Hi HHH
echo ${s/H/_} # _ello Hey Hi HHH 替换一次
echo ${s//H/_} # _ello _ey _i ___ 全部替换
echo ${s//H/} # ello ey i 替换为空
echo ${s/i*/} # Hello Hey H 通配符替换
echo ${s/*i/} # HHH 通配符替换
echo ${s/H???/} # o Hey Hi HHH 通配符替换