shell 之if中数字比较

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值