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
  echo 'yes'
else
  echo 'no'
fi

注意: 字符串比较必须加双引号

总结:
-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

上一篇:类加载器原理


下一篇:实验吧-False Writeup