美文网首页
Shell编程之while语句

Shell编程之while语句

作者: 你好树洞先生 | 来源:发表于2019-12-21 08:45 被阅读0次

循环语句while

while循环语句,只要条件成立就反复执行对应的命令操作,

直到命令不成立或为假。

1.while循环基础语法

#当条件测试成立(条件测试为真),执行循环体

while 条件测试

do

    循环体

done

----------------------------------------------

#!/bin/bash

i=0

while [ $i -lt 10 ]

do

  echo 123

  let i++

done

----------------------------------------------

#!/usr/bin/bash

i=10

while [ $i -gt 0 ]

do

  echo $i $i

  let i--

done

----------------------------------------------

#!/bin/bash

i=10

while [ $i -gt 0 ]

do

  sum=$(( $i + $i ))

  echo $i + $i = $sum

  let i--

done

----------------------------------------------

while 循环基本使用示例,降序输出10到1的数字

#!/bin/bash

a=1

b=10

while [ $a -le 10 ]

do

  sum=$(( $a + $b ))

  echo $a + $b = $sum

  let a++

  let b--

done

======================================

案例:使用while读入文件方式,批量创建用户。

while默认按行取值。

while read line

do

  echo $line

done<user.txt

=============================

升华版:

#!/usr/bin/bash

while read line

do

  #1.判断用户是否存在

  id $line &>/dev/null

  if [ $? -eq 0 ];then

      echo "User:$line already exists"

  else

      useradd $line &>/dev/null

  echo "User: $line Create OK"

  fi

done<user.txt

======================================

2.内置跳出循环语句指令

在我们使用循环语句进行循环的过程中,有时候需要在未达到循环结束

条件时强制跳出循环,那么shell给我们提供了内置方法来实现该功能:

exit、break、continue

(1)关于exit的案例:

#!/bin/bash

for i in {1..3}

do

  echo "123"

  exit

  echo "456"

done

echo "Done..."

========================

(2)break,结束当前循环,或跳出本层循环

#!/bin/bash

for i in {1..3}

do

  echo "123"

  break

  echo "456"

done

echo "Done..."

=========================================

(3)continue 忽略本次循环剩余的代码,直接进行下一次循环

#!/bin/bash

for i in {1..3}

do

  echo "123"

  continue

  echo "456"

done

echo "Done..."

案例:continue,

#!/bin/bash

for i in 'seq 10'

do

    useradd te$i &>/dev/null

   if [ $? -eq 0 ];then

   echo "Create User $i Success"

  else

      echo "Create User $i already exists"

     continue

  fi

done

总结:

1.exit,当脚本碰到exit时,直接退出,剩余不管有多少代码都不执行。

2.break,结束当前循环,但会执行循环之后的所有的代码。

3.continue 忽略本次循环剩余的所有代码,直接进行下一次循环,

直到循环结束,然后继续循环之后的代码。

===============================================

相关文章

网友评论

      本文标题:Shell编程之while语句

      本文链接:https://www.haomeiwen.com/subject/kjwwnctx.html