技术成就梦想

代码如诗

原 20.13 break跳出循环 脑洞老湿_

2017年9月14日 未分类 0

20.13 break跳出循环

#!/bin/bash
for i in `seq 1 5`
do
    echo $i
    if [ $i == 3 ]
    then
        break
    fi
    echo $i
done
echo aaaaaaa

通过for循环来演示break:

[root@DasonCheng sbin]# cat break.sh 
#! /bin/bash
for i in `seq 1 5`
do
  echo $i
  if [ $i -eq 3 ]
  then
    break      //退出整个for循环;
  fi
  echo $i
done
echo aaa
[root@DasonCheng sbin]# sh -x break.sh 
++ seq 1 5
+ for i in '`seq 1 5`'
+ echo 1
1
+ '[' 1 -eq 3 ']'
+ echo 1
1
+ for i in '`seq 1 5`'
+ echo 2
2
+ '[' 2 -eq 3 ']'
+ echo 2
2
+ for i in '`seq 1 5`'
+ echo 3
3
+ '[' 3 -eq 3 ']'
+ break
+ echo aaa
aaa

20.14 continue结束本次循环

忽略continue之下的代码,直接进行下一次循环

忽略continue之下的代码,直接进行下一次循环
#!/bin/bash
for i in `seq 1 5`
do
    echo $i
    if [ $i == 3 ]
    then
        continue
    fi
    echo $i
done
echo $i

for循环演示continue:

[root@DasonCheng sbin]# cat continue.sh 
#! /bin/bash
for i in `seq 1 5`
do
  echo $i
  if [ $i -eq 3 ]
  then
    continue      //当if成立时,continue后面的语句则不再执行,重新进行下一次循环;
  fi
  echo $i
done
echo aaa
[root@DasonCheng sbin]# sh -x continue.sh 
++ seq 1 5
+ for i in '`seq 1 5`'
+ echo 1
1
+ '[' 1 -eq 3 ']'
+ echo 1
1
+ for i in '`seq 1 5`'
+ echo 2
2
+ '[' 2 -eq 3 ']'
+ echo 2
2
+ for i in '`seq 1 5`'
+ echo 3
3
+ '[' 3 -eq 3 ']'
+ continue        //这里不echo 3了,直接重新for了;
+ for i in '`seq 1 5`'
+ echo 4
4
+ '[' 4 -eq 3 ']'
+ echo 4
4
+ for i in '`seq 1 5`'
+ echo 5
5
+ '[' 5 -eq 3 ']'
+ echo 5
5
+ echo aaa
aaa

20.15 exit退出整个脚本

#!/bin/bash
for i in `seq 1 5`
do
    echo $i
    if [ $i == 3 ]
    then
        exit
    fi
    echo $i
done
echo aaaaaaa

for循环演示exit:

[root@DasonCheng sbin]# cat exit.sh 
#! /bin/bash
for i in `seq 1 5`
do
  echo $i
  if [ $i -eq 3 ]
  then
    exit 1      //直接退出整个脚本,不再执行任何操作;
  fi
  echo $i
done
echo aaa
[root@DasonCheng sbin]# sh -x exit.sh 
++ seq 1 5
+ for i in '`seq 1 5`'
+ echo 1
1
+ '[' 1 -eq 3 ']'
+ echo 1
1
+ for i in '`seq 1 5`'
+ echo 2
2
+ '[' 2 -eq 3 ']'
+ echo 2
2
+ for i in '`seq 1 5`'
+ echo 3
3
+ '[' 3 -eq 3 ']'
+ exit    //直接退出这个脚本,echo aaa都不执行了;通常exit 会接一个返回值1