这是一个创建于 4175 天前的主题,其中的信息可能已经有所发展或是发生改变。
刚学shell脚本,在书上看到这里的时候有点小疑问。
#!/bin/bash
aa=0
while echo "while iteration: $aa "
[ $aa -lt 15 ]
do
if [ $aa -gt 5 ] && [ $aa -lt 10 ]
then
continue
fi
echo " inside iteration number: $aa"
aa=$[ $aa + 1 ]
done
运行这个脚本会出现这样的结果:
[root@test ~]# . a.sh |more
while iteration: 0
inside iteration number: 0
while iteration: 1
inside iteration number: 1
while iteration: 2
inside iteration number: 2
while iteration: 3
inside iteration number: 3
while iteration: 4
inside iteration number: 4
while iteration: 5
inside iteration number: 5
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
我想知道,为什么6这里过不去呢。
2 条回复 • 1970-01-01 08:00:00 +08:00
|
|
1
rse43 2013-06-22 14:06:00 +08:00 via iPad 1
if [ $aa -gt 5 ]
|
|
|
2
gouera 2013-06-22 14:10:23 +08:00
啊,我知道为什么了, 当$aa=6的时候, 刚好满足 [ $aa -gt 5 ] && [ $aa -lt 10 ] 这条语句, 然后这个循环又跳到开头去了。 然后因为没有结束的条件。所以就一直这样死循环了。 本来一直想不通的,现在仔细分析一下,就通了。哈哈
|