shell while 为何不跳出循环?

[复制链接]
查看11 | 回复4 | 2016-11-4 19:02:23 | 显示全部楼层 |阅读模式
一个简单脚本:
#!/bin/sh
COT=0
while [ $COT -le 5 ]
echo $?
do
COT=`expr $COT + 1`
echo $COT
done
按理来说,当COT累加到6的时候,while的返回应该就是1了。实际上也是如此,我加的echo语句就是为了看这个。但是很奇怪,循环不停止,一直执行,都加到100多了 显示为

1
1XX
1
1XX

还没有停止循环的意思,请问各位高手,这是为啥呢?
我用的REDHAT.

回复

使用道具 举报

千问 | 2016-11-4 19:02:23 | 显示全部楼层
do语句要提前一行。while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为:while commanddo Statement(s) to be executed if command is truedone命令执行完毕,控制返回循环顶部,从头开始直至测试条件。
回复

使用道具 举报

千问 | 2016-11-4 19:02:23 | 显示全部楼层
while 的语法是:while 【 condition 】do...done所以要改成:#!/bin/shCOT=0while [ $COT -le 5 ]doCOT=`expr $COT + 1`echo $COTdone
回复

使用道具 举报

千问 | 2016-11-4 19:02:23 | 显示全部楼层
do语句是不是要提前一行啊。手上没有linux
回复

使用道具 举报

千问 | 2016-11-4 19:02:23 | 显示全部楼层
#!/bin/shCOT=0while [ $COT -lt 5 ]doecho $?----->放在这里,否则循环无法终止。COT=$((COT+1))echo $COTdone
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行