日期:2014-05-16  浏览次数:20699 次

shell脚本有问题求高手帮忙
p=`df -m|grep /oracle|awk '{print $4}'`
if [ "$p" -gt "90%" ] ;then
echo $p
else
exit 1
fi
执行报错:
test.sh: line 2: [: 39%: integer expression expected
p=`df -m|grep /oracle|awk '{print $4}'`
这个地方执行出来为39%

------解决方案--------------------
法一:if [[ "$p" -gt "90%" ]] ;then

法二:
if [ -z $p ]; then exit; fi
if [ "$p" -gt "90%" ] ;then

------解决方案--------------------
if [ "$p" -gt "90%" ] 

字符串比较用= !=
只有整数比较使用-gt -lt等等
------解决方案--------------------
试试if [[ "$p" > "90%" ]]
------解决方案--------------------
p=`df -hT|grep /oracle|awk '{print $4}'|cut -d "%" -f 1`
#用cut把39%的%去掉,然后进行数值的判断
if [ "$p" -gt 90 ]; then
echo $p
else
exit 1
fi
------解决方案--------------------
探讨

if [ "$p" -gt "90%" ]

字符串比较用= !=
只有整数比较使用-gt -lt等等

------解决方案--------------------
来晚了,3楼一针见血啊!
探讨
if [ "$p" -gt "90%" ]

字符串比较用= !=
只有整数比较使用-gt -lt等等

------解决方案--------------------
探讨

p=`df -hT|grep /oracle|awk '{print $4}'|cut -d "%" -f 1`
#用cut把39%的%去掉,然后进行数值的判断
if [ "$p" -gt 90 ]; then
echo $p
else
exit 1
fi