首页 > 其他分享 >循环控制语句

循环控制语句

时间:2023-04-06 23:34:13浏览次数:43  
标签:语句 控制 read magedu echo while 循环 root centos8

continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断;最内层为第1层

格式:

while CONDITION1; do
CMD1
...
if CONDITION2; then
continue
fi
CMDn
...
done

范例:


#!/bin/bash

for ((i=0;i<10;i++));do

        for((j=0;j<10;j++));do

        [ $j -eq 5 ] && continue  2

        echo $j

        done

echo ---------------------------

done

break [N]:提前结束第N层整个循环,最内层为第1层

 格式:

范例:

while CONDITION1; do

CMD1

...

if CONDITION2; then

break

fi

CMDn

...

done


[root@centos7wyj data]$bash break.sh

0

1

2

3

4

[root@centos7wyj data]$cat break.sh

#!/bin/bash

for ((i=0;i<10;i++));do

        for((j=0;j<10;j++));do

        [ $j -eq 5 ] && break 2

        echo $j

        done

echo ---------------------------

done

[root@centos7wyj data]$

shift [n] 用于将参量列表 list 左移指定次数,缺省为左移一次。

参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。while 循环遍历位置参量列表时,常用到SHIFT

范例脚本:

#!/bin/bash

passwd=12345678

if [ $# -eq 0 ];then

echo "Usage: `basename $0` user1 user2 ..."

exit

fi


while [ -n "$1" ] ;do

if   id $1 &> /dev/null;then

 echo user $1 exist。

  else

useradd $1

       echo $passwd | passwd --stdin $1 &> /dev/null

echo $1 user is created, passwd is 12345678

fi

shift

done  


while read 的 特殊用法

while 循环的特殊用法,遍历文件或文本的每一行


格式:

while read line; do

循环体

done < /PATH/FROM/SOMEFILE

范例:

[root@centos8 ~]#echo magedu | read X ; echo $X

[root@centos8 ~]#echo magedu | while read X ; do echo $X;done

magedu

[root@centos8 ~]#echo magedu | { read X ; echo $X; }

magedu

[root@centos8 ~]#echo magedu | ( read X ; echo $X )

magedu

[root@centos8 ~]#echo mage wang zhang | ( read X Y Z; echo $X $Y $Z )

mage wang zhang

[root@centos8 ~]#echo mage wang zhang | while read X Y Z; do echo $X $Y $Z;done

mage wang zhang

while read检查磁盘空间:

[root@centos8 ~]#echo magedu | read X ; echo $X

[root@centos8 ~]#echo magedu | while read X ; do echo $X;donemagedu

[root@centos8 ~]#echo magedu | { read X ; echo $X; }magedu

[root@centos8 ~]#echo magedu | ( read X ; echo $X )magedu

[root@centos8 ~]#echo mage wang zhang | ( read X Y Z; echo $X $Y $Z )mage wang zhang

[root@centos8 ~]#echo mage wang zhang | while read X Y Z; do echo $X $Y $Z;donemage wang zhang

范例:单词文件

[root@centos6 ~]#wc -l /usr/share/dict/linux.words479829 /usr/share/dict/linux.words

select 循环与菜单

select NAME [in WORDS ... ;] do COMMANDS; done



select variable in list ;do

循环体命令

done

说明:

select 循环主要用于创建菜单,按数字顺序排列的菜单项显示在标准错误上,并显示 PS3 提示符,等待用户输入

用户输入菜单列表中的某个数字,执行相应的命令

用户输入被保存在内置变量 REPLY 中

select 是个无限循环,因此要用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c

退出循环

select 经常和 case 联合使用

与 for 循环类似,可以省略 in list,此时使用位置参量

范例:

cat select.sh

#!/bin/bash

sum=0

PS3="请点菜(1-6): "select MENU in 北京烤鸭 佛跳墙 小龙虾 羊蝎子 火锅 点菜结束;do
case $REPLY in

1)echo $MENU 价格是 100

let sum+=100

;;

2)echo $MENU 价格是 88

let sum+=88

;;

3)echo $MENU价格是 66

let sum+=66

;;

4)echo $MENU 价格是 166

let sum+=166;;

5)echo $MENU 价格是 200

let sum+=200

;;

6) 

echo "点菜结束,退出"

break
;;
*)

echo "点菜错误,重新选择"

;;

esac
done

echo "总价格是: $sum"



标签:语句,控制,read,magedu,echo,while,循环,root,centos8
From: https://blog.51cto.com/gttwangyanjun/6174248

相关文章

  • 【web 开发基础】PHP 的流程控制之多向条件分支结构 -PHP 快速入门 (14)
    多向条件分支结构(elseif)条件分支结构其实是我们生活中常用的一种一种逻辑结构,类似于我们常用的(如果...那么...否则...就.....).本文中的elseif子句,和此名称暗示的一样,就是if和else的组合,相当于(...else{if(表达式){{语句块;}}})。和else一样,它延伸了if语句,条件分支结构中els......
  • spring的bean加载控制
           ......
  • 循环语句练习(2)
    1.数组项目求和点击查看代码intsum=0;int[]s=newint[6]{2,3,4,7,9,6};foreach(intiins){sum+=i;}Console.WriteLine(sum);2.数组项求最大值和最小值......
  • Chrome浏览器插件:CrxMouse(鼠标手势控制浏览器)
    CrxMouse是一款谷歌浏览器插件,它可以通过手势来控制您的浏览器,在您的日常网络浏览中提高效率和速度。插件介绍CrxMouse是一个非常流行的谷歌浏览器插件,它允许您通过鼠标手势来控制您的浏览器。该插件集成了大量的手势功能,使您可以在不使用键盘或鼠标的情况下轻松地进行网页浏览......
  • foreach/增强for循环 中 使用iterator.remove();
    Set<String>set=newHashSet<>();set.add("a");set.add("b");Iterator<String>iterator=set.iterator();for(Stringstring:set){iterator.next();iterator.remove();} Excep......
  • 永磁同步电机(pmsm,全速度切换无位置传感器控制(高速可以是超螺旋滑模)
    永磁同步电机(pmsm,全速度切换无位置传感器控制(高速可以是超螺旋滑模)低速可以是脉振高频方波注入,if开环等仿真模型。切换有加权切换和双坐标切换。YID:3180697422312043......
  • 储能控制器,simulink仿真模型。 采用下垂控制实现蓄电池超级电容构成的混合储能功率分
    储能控制器,simulink仿真模型。采用下垂控制实现蓄电池超级电容构成的混合储能功率分配、SOC均衡控制、考虑线路阻抗情况下提高电流分配精度控制、母线电压补控制。YID:2580685477458200......
  • carsim与simulink联合仿真 差动驱动 两轮独立驱动电动汽车控制策略
    carsim与simulink联合仿真(3)——差动驱动两轮独立驱动电动汽车控制策略。分为低速和高速两种策略优化分配驱动力矩,低速基于阿克曼转向的差速控制,高速的分上下两层控制器,上层计算附加扭矩,下层进行分配。路径跟踪,力矩分配,高低速双策略。carsim和Simulink联合仿真,包含建模说明书。......
  • MATLAB代码:分布式最优潮流 含分布式光伏的配电网集群划分和集群电压协调控制
    MATLAB代码:分布式最优潮流关键词:网络划分;分布式光伏;集群电压控制;分布式优化;有功缩减参考文档:《含分布式光伏的配电网集群划分和集群电压协调控制》仿真平台:MATLAB主要内容:本文以全局电压的低成本快速控制为目标,提出基于电气距离和区域电压调节能力的集群综合性能指标和网络划......
  • 控制器设计
    粗略讨论硬布线和微程序控制器引入下图是单总线cpu的示意图:我们从宏观到微观看,如何取出一条指令这个问题。PC存放着待取指令的地址,将地址送进MAR,进行访存操作后,指令被送进MDR那怎么实现的上面这些操作呢?答案就是控制器在发出控制信号,如下以cpu单总线的方式来探讨将指......