直接上原shell
if [ $TBSUSE -gt 80 ]
then
...
else
...
fi
此时如果$TBSUSE传入的不是整数的话,那么会提示错误:
./monitor_tbs.sh: line 62: [: 80.48: integer expression expected
看这错误的意思是 参数只能传入整数,非整数的话不能使用 -gt来比较大小
(同理,-lt\-eq\-ne\-ge\-le 都是不行的)
处理办法:
1.使用expr
if [ `expr $TBSUSE \> 80` -eq 1 ]
then
...
else
...
fi
需要注意的是,[ `是 `而不是'
2.使用br
if [ `echo "$TBSUSE > 80"|bc` -eq 1 ]
then
...
else
...
fi
3.使用awk进行判断
echo 'imput var:'
read TBSUSE
if [ `awk -v var1=$TBSUSE -v var2=80 'BEGIN{print(var1>var2)?1:0}'` -eq 1 ]
then
...
else
...
fi