shell中的循环语法

                       shell中的循环语法

                                                     作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.for循环
1.语法格式1
1 for 变量 in 值1 值2 值3 ...
2 do
3   源代码
4 done
 
2.语法格式2
1 for (( 初始值;循环控制条件;变量变化 ))
2 do
3   源代码
4 done

 

3.案例展示一
 1 [root@yinzhengjie backup]# more for1.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:y1053419035@qq.com
 6 
 7 for i in 1 2 3
 8     do
 9         echo "第$i次循环!"
10 done
11 [root@yinzhengjie backup]# 

 

4.案例展示二(求和运算)
 1 [root@yinzhengjie backup]# more for3.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:y1053419035@qq.com
 6 
 7 sum=0
 8 read -t 30 -p "Please enter the start number>>>" StartNumber
 9 read -t 30 -p "Please enter an end number>>>" EndNumber
10 
11 for ((i=$StartNumber;i<=$EndNumber;i=i+1))
12     do
13         sum=$(($sum+$i))
14 done
15 
16 echo "从$StartNumber加到$EndNumber的总和是:$sum"
17 [root@yinzhengjie backup]# 
 
5.案例展示三(批量添加用户)
 1 [root@yinzhengjie backup]# more useradd.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:y1053419035@qq.com
 6 
 7 
 8 read -p "Please input username(default "yinzhengjie"):" -t 30 username
 9 read -p "Please input the number of users:" -t 30 UsersNumber
10 read -p "Please input the password of users:" -t 30 password
11 
12 if [ -z $username ]
13     then
14         username=yinzhengjie
15 fi
16 
17 
18 if [ ! -z "$username" -a ! -z "$UsersNumber" -a ! -z "$password" ]
19     then
20         y=$(echo $UsersNumber|sed 's/[0-9]//g')
21         if [ -z "$y" ]
22             then
23                 for (( i=1;i<=$UsersNumber;i=i+1 ))
24                     do
25                         useradd "$username$i" &>/dev/null
26                         echo $password | passwd --stdin "$username$i" &> /dev/null
27                 done
28        fi
29 fi
30 
31 [root@yinzhengjie backup]# 

 

二.while循环
  while循环是不定循环,也称做条件循环。只要条件判断式成立,循环就会一直继续。只要条件判断式不成立,循环才会停止。这就和for的固定循环不太一样了。
1.语法格式
1 while [ 条件判断式 ]
2 do
3     源代码
4 done

 

 
2.案例展示
 1 [root@yinzhengjie shell]# more while.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:y1053419035@qq.com
 6 
 7 sum=0
 8 read -t 30 -p "Please enter the start number>>>" StartNumber
 9 read -t 30 -p "Please enter an end number>>>" EndNumber
10 
11 while [ $StartNumber -le $EndNumber ]
12     do
13         sum=$(( $sum + $StartNumber ))
14         StartNumber=$(( $StartNumber + 1 ))
15 done
16 
17 StartNumber=$(( $StartNumber - $EndNumber ))
18 
19 echo "从$StartNumber加到$EndNumber的总和是:$sum"
20 [root@yinzhengjie shell]# 

 

 
三.until循环
  until循环,和while循环相反,until循环时,只要条件判断式不成立则进行循环,并执行循环程序。一旦循环条件成立,则终止循环。
1.语法格式
1 until [ 条件表达式 ]
2 do
3     源代码
4 done

 

2.案例展示
 1 [root@yinzhengjie shell]# more until.sh 
 2 #!/bin/bash
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie
 5 #EMAIL:y1053419035@qq.com
 6 
 7 sum=0
 8 read -t 30 -p "Please enter the start number>>>" StartNumber
 9 read -t 30 -p "Please enter an end number>>>" EndNumber
10 
11 until [ $StartNumber -gt $EndNumber ]
12     do
13         sum=$(( $sum + $StartNumber ))
14         StartNumber=$(( $StartNumber + 1 ))
15 done
16 
17 StartNumber=$(( $StartNumber - $EndNumber ))
18 
19 echo "从$StartNumber加到$EndNumber的总和是:$sum"
20 [root@yinzhengjie shell]# 

 

 

转载于:https://www.cnblogs.com/yinzhengjie/p/7679640.html

Shell,for循环语法结构如下: for 变量名 in 列表 do 循环体语句 done 其,变量名是循环变量,可以是任意合法的变量名。列表是用来迭代的元素集合,可以是一组字符串、数组或者是通过命令的输出来生成的。在每次循环迭代时,变量名会依次被赋值为列表的每个元素。循环体语句是在每次迭代要执行的命令或命令序列。 此外,还可以结合条件判断和流程控制语句来控制循环的行为。例如,可以使用break关键字来跳出循环,即在满足某个条件时立即终止循环并执行循环体外的代码。而continue关键字可以用来跳过当前循环的剩余部分,直接进行下一次循环。 总结起来,Shellfor循环语法结构为:for 变量名 in 列表; do 循环体语句; done,并可以结合break和continue关键字来控制循环的流程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Shell 循环结构](https://blog.csdn.net/weixin_42262081/article/details/122543539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [shell的for循环语句](https://blog.csdn.net/weixin_51079220/article/details/125890193)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值