关于SHELL脚本循环的问题
- 0次
- 2021-07-22 08:31:21
- idczone
刚学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
运行这个脚本会出现这样的结果:
[[email protected] ~]# . 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这里过不去呢。
if [ $aa -gt 5 ]
啊,我知道为什么了,
当$aa=6的时候,
刚好满足 [ $aa -gt 5 ] && [ $aa -lt 10 ] 这条语句, 然后这个循环又跳到开头去了。 然后因为没有结束的条件。所以就一直这样死循环了。
本来一直想不通的,现在仔细分析一下,就通了。哈哈