echo ‘1.2*2’|bc
++++++++++++++++ 數字比較
方式1:
agm1=50
agm2=60
if [ 3 -eq 3 -a ${agm1} -ne ${agm2} -a ${agm2} -gt ${agm1} -a ${agm1} -ge 50 -a ${agm1} -lt ${agm2} -a ${agm2} -le 60 -o 4 -gt 3 ]; then
echo 'yes'
else
echo 'no'
fi
方式2:
agm1='ye'
agm2='ye'
if [[ "$agm1" == "$agm2" && "$agm1" == 'ye' && 2 > 1 && 1 < 2 ]]; then
注意: 字元串比較必須加雙引号
總結:
-f 檔案是否存在
-d 目錄是否存在
-s 檔案存在且不為空
-e 存在的是目錄或檔案
-L 是否快捷連結
-r 檔案是否可讀
-w 檔案是否可寫
-x 檔案是否可執行
-eq 是否相等
-ne 是否不等于
-ge 是否大于等于
-gt 是否大于
-le 是否小于等于
-lt 是否小于
-a 且
-o 或
[ * ] 大括号一般字母可用
[[*]] 雙大括号一般 && || > < >= <= == !=符合可用
上述相關可以在 help test 詳細講解
條件控制語句
擷取記憶體大小: free -m |grep buffers\/|awk '{print $NF}'
判斷是否數字:
#!/bin/bash
str='123'
[ -n "`echo ${str}|sed 's#[0-9]##g'`" ] && {
echo ‘no int’
exit 1
}
或者
[ -n "`echo hello123|sed 's/[0-9]//g'`" ] && echo 'no int' || echo 'is int'
本文轉自cloves 51CTO部落格,原文連結:http://blog.51cto.com/yeqing/1882627