直接上原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