技术解析

关于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 ] 这条语句, 然后这个循环又跳到开头去了。 然后因为没有结束的条件。所以就一直这样死循环了。
本来一直想不通的,现在仔细分析一下,就通了。哈哈

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服