四則運算 [root@localhost t]# b=$(( 5*5+5-3/2 )) ## $(( )) 結構 [root@localhost t]# echo $b 29 [root@localhost t]# b=`expr 5 * 5` expr: 語法錯誤 [root@localhost t]# b=`expr 5 \* 5` [root@localhost t]# echo $b ## expr 在乘法運算時,需要轉義 25 [root@localhost t]# echo $(( 5.0 - 4 )) -bash: 5.0 -4 : syntax error: invalid arithmetic operator (error token is ".0 -4 ") [root@localhost t]# c=`echo "5.01 - 4" | bc` #echo 無法浮點運算,需要藉助bc [root@localhost t]# echo $c 1.01 字符串截取 [root@localhost t]# var=5 [root@localhost t]# echo ${var-hello} ## var有值則輸出 5 [root@localhost t]# echo ${bar-hello} ##bar無值輸出默認hello hello [root@localhost t]# var="" [root@localhost t]# echo ${var:-Null} ##var 爲空,輸出默認 Null [root@localhost t]# echo ${bar=hello} ##bar無值,輸出默認,並賦值 hello [root@localhost t]# echo $bar hello [root@localhost t]# bar="" [root@localhost t]# echo ${bar=hello} ##bar爲空,輸出默認,並賦值 [root@localhost t]# echo ${bar:=hello} hello [root@localhost t]# echo $bar hello [root@localhost t]# var=abcdefg [root@localhost t]# echo ${#var} #字符串長度 7 [root@localhost t]# echo ${var:3} #從位置3開始截取 defg [root@localhost t]# echo ${var:3:2} #位置3開始,長度2 de [root@localhost t]# var=a.b.c.e.f.g.h [root@localhost t]# echo ${var#*.} #從左開始刪除最短匹配 b.c.e.f.g.h [root@localhost t]# echo ${var##*.} # ~ 最長匹配 h [root@localhost t]# echo ${var%.*} #從右開始刪除最短匹配 a.b.c.e.f.g [root@localhost t]# echo ${var%%.*} # ~ 最長匹配 a [root@localhost t]# var=aaabbb [root@localhost t]# echo ${var/a/c} # 一次替換 caabbb [root@localhost t]# echo ${var//a/c} #全部替換 cccbbb [root@localhost t]# var=abcefgabc [root@localhost t]# echo ${var/#abc/ggg} #從左開始匹配替換 gggefgabc [root@localhost t]# echo ${var/%abc/ggg} #從右開始匹配替換 abcefgggg [root@localhost t]# var=abc134efg456hhh [root@localhost t]# echo ${var/[0-9]/x} #匹配正則 abcx34efg456hhh [root@localhost t]# echo ${var//[0-9]/x} abcxxxefgxxxhhh