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‘