Shell编程之while语句

循环语句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 忽略本次循环剩余的所有代码,直接进行下一次循环,

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,567评论 3 53
  • 循环:for, while, until 循环体:要执行的代码;可能要执行n遍; 进入条件: ...
    汤姆森森阅读 5,857评论 0 0
  • 流程控制 if 单条件 双分支 多分支 case case支持glob风格的通配符: *: 任意长度任意字符?: ...
    毛利卷卷发阅读 860评论 0 1
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,273评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,809评论 0 5

友情链接更多精彩内容