shell腳本中比較、運算以及格式

比較:
方法一: if [ ${A} -lt ${B} ]; then …
這是最基本的比較方法,使用lt(小於),gt(大於),le(小於等於),ge(大於等於),優勢:還沒發現;缺點:只能比較整數,使用lt,gt等不直觀
方法二: if ((${A} < ${B})) then …
這是CShell風格比較,優勢:不用使用lt,gt等難記的字符串;缺點:仍是隻能比較整數
方法三: if (echo ${A} ${B} | awk ‘!($1>$2){exit 1}’) then …
這是使用awk比較,優勢:能夠比較小數;缺點:表達式太複雜,難記
方法四: if (echo ${A} – ${B} | bc -q | grep -q 「^-」); then …
這是使用bc計算比較,優勢:能夠比較小數;缺點:表達式更復雜,難記

計算:
方法一:typeset C=$(expr ${A} + ${B});
SHELL中的基本工具,優勢:方便檢測變量是否爲數字;缺點:只能計算整數,且只能計算加減法,不能計算乘除法
方法二:let 「C=${A}+${B}」; 或 let 「C=A+B」
內嵌命令計算,優勢:能計算乘除法及位運算等;缺點:只能計算整數
方法三:typeset C=$((A+B))
CShell風格的計算,優勢:能計算乘除法及位運算等,簡介,編寫方便;缺點:不能計算小數
方法四:typeset C=${echo ${A} ${B} | awk ‘{print $1+$2}’)
使用awk計算,優勢:能計算小數,能夠實現多種計算方式,計算靈活;缺點:表達式太複雜
方法五:typeset C=${echo ${A} + ${B} | bc -q)
使用awk計算,優勢:能計算小數,計算方式比awk還多,計算靈活;缺點:表達式太複雜,小數點後面的位數必須使用scale=N來設置,不然可能會將結果截斷爲整
 
[ echo中的格式控制 ] echo -e "\n"  換行
echo -e "\c"  連行
echo -e "\t"  tab
 

[使用sed命令刪除空格和空行]

sed s/[[:space:]]//g  filename          刪除空格
sed /^$/d         filename        刪除空行java

相關文章
相關標籤/搜索