天天看點

shell 檔案 數字比較

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