您的位置:首页 > 运维架构 > Shell

shell 之if中数字比较

2015-02-12 13:23 120 查看
dash (ubuntu 中sh 默认连接到dash)好像没有“==”  ,不过bash有,下面代码会有报错。

把sh改成bash 就不会有问题

#!/bin/sh
xxx=10
if [ $xxx -gt 20 ]
then echo 'xxx>20'
fi
if [ $xxx -lt  20 ]
then echo 'xxx<20'
fi
if [ $xxx -gt 5 ]
then echo 'xxx>5'
fi
if [ $xxx -lt 5 ]
then echo 'xxx<5'
fi
if [ $xxx -eq 10 ]
then echo xxxeq10
fi
if [ $xxx -ne 10 ]
then echo xxxne10
fi
if [ $xxx -eq 20 ]
then echo xxxeq20
fi
if [ $xxx -ne 20 ]
then echo xxxne20
fi
if [ $xxx == 10 ]
 then echo 'xxx==10'
fi
if [ $xxx = 10 ]
 then echo 'xxx=10'
fi
if [ $xxx != 10 ]
 then echo 'xxx!=10'
fi
if [ ! $xxx = 10 ]
 then echo '!xxx=10'
fi
if [ ! $xxx == 10 ]
 then echo '!xxx==10'
fi
if [ $xxx == 20 ]
 then echo 'xxx==20'
fi
if [ $xxx = 20 ]
 then echo 'xxx=20'
fi
if [ $xxx != 20 ]
 then echo 'xxx!=20'
fi
if [ ! $xxx = 20 ]
 then echo '!xxx=20'
fi
if [ ! $xxx == 20 ]
 then echo '!xxx==20'
fi
运行结果:
xxx<20 xxx="">5
xxxeq10
xxxne20
./test.sh: 29: [: 10: unexpected operator
xxx=10
./test.sh: 41: [: 10: unexpected operator
./test.sh: 44: [: 10: unexpected operator
xxx!=20
!xxx=20
./test.sh: 56: [: 10: unexpected operator
<!--20-->


参考:

简版:http://zhidao.baidu.com/link?url=WSUZ_h7lRKlWqjRi6fMvcYk0hxg9nWzBfW4xZTLNURF4BjlQWbbM4Wfx6NrcVfL2sa9zu2DO5rQn2kFSvmp0ha

完整版:http://www.jb51.net/article/34332.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: