break 退出循环 continue 提前进入下一轮循环 while的特殊用法

写一个脚本,此脚本能于同一个repo文件中创建多个Yum源的指向  上节课所讲的定义yum仓库

1、接受一个文件名做为参数,此文件存放至/etc/yum.repos.d目录中,且文件名以。repo为后缀;要求此文件不能事先存在,否则报错;

2、在脚本中,提醒用户输入repo id;如果为quit,则退出脚本,否则继续完成一下步骤;

3、repo name以及baseurl的路径,而后以repo文件的格式将其保存至指定的文件中;

4、enabled默认为1,而gpgcheck默认设定为0

5、此脚本会循环执行多次,除非用户为repo id 指定为quit

回顾:.,[email protected]/etc/yum.repos.d/[email protected][email protected] 从当前行到最后一行 替换这个为那个

#!/bin/bash

#

REPOFILE=/etc/yum.repos.d/$1

if [ -e $REPOFILE ]; then

echo "$1 is exist."

exit 3

fi

read -p "Repository ID:" REPOID

until [ $REPOID == ‘quit‘ ]; do

echo "[$REPOID]" >> $REPOFILE

read -p "Repository name " REPONAME

echo "name=$REPONAME" >> $REPOFILE

read -p "Repository Baseurl" REPOURL

echo "baseurl=$REPOURL" >> $REPOFILE

echo -e ‘enabled=1\ngpgcheck=0‘ >> $REPOFILE

read -p "Repository ID: " REPOID

done

########################################################################################

计算100以内所有奇数的和     continue 提前进入下一轮循环

#!/bin/bash

#

let SUM=0

let I=0

while [ $I -lt 100 ]; do

let I++

if [ $[$I%2] -eq 0 ]; then

continue

fi

let SUM+=$I

done

echo $SUM

#####################################################################################3

计算1000以内所有正整数的和,当sum>5000的时候就不要加了   break  提前退出循环    -e  文件存在

#!/bin/bash

#

declare -i SUM=0

for I in {1..100}; do

let SUM+=$I

if [ $SUM -gt 5000 ]; then

break

fi

done

echo $I

echo $SUM

##################################################

格式:

while read LINE; do

done < /path/to/somefile

判断/etc/passwd下的用户哪个用户的shell为bin下的bash,如果是bash就显示此用户的用户名,否则不显示;

且显示6个信息就自动退出;且用户ID小于等于505就不显示

#!/bin/bash

#

let I =0

FILE=/etc/passwd

while read FILE; do

   [ `echo $FILE | awk -F : ‘{print $3}‘` -lt 505 ] && continue

   [ `echo $FILE | awk -F : ‘{print $7}‘` == ‘/bin/bash‘ ] && echo $FILE | awk -F : ‘{print $1}‘ && let I++                  

  [ $I -eq 6 ] && break

done < $FILE

###################################################################################################################

1、判断一个指定的bash脚本是否存在语法错误;如果有错误,则提醒用户键入Q或q无视错误并退出,其他任何键都可以vim打开这个指定的脚本

2、如果用户通过vim打开编辑后并保存退出时,仍然有错误,则重复第一步的内容,否则就正常关闭退出

#!/bin/nbash

#

bash -n $1

until bash -n $1 &> /dev/null; do

read -p "some error  q/Q to quit others for edit"  CHOICE

case $I in

q|Q)

echo "something wrong"

exit 5;;

*)

vim + $1;;

esac

done


时间: 2024-10-14 03:51:11

break 退出循环 continue 提前进入下一轮循环 while的特殊用法的相关文章

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc

for、while循环、break跳出循环、continue结束本次循环、exit退出脚本

for 循环 当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值.命令可为任何有效的shell命令和语句. 语法:for 变量名 in 条件: do...;done 案例1 #!/bin/bashsum=0 // 给变量sum赋值for i in seq 1 100 // 给i赋值,从1到100dosum=$[ $sum + $i ]// 累加doneecho $sum// 输出结果为1到100的和 案例2 #!/bin/bashcd /etc/ // 切换到/etc

for循环、 while循环、break跳出循环、continue结束本次循环、exit退出整个脚本

for循环 案例1:写个for循环的脚本需求,我让你计算1到100所有数字的和. 上图有了数字之后就去做加减法 [[email protected] shell]# sh -x for1.sh ##执行查询过程 + sum=0 ##sum=0 ++ seq 1 100 + for i in '`seq 1 100`' ##循环一次是1+0等于1 + sum=1 + for i in '`seq 1 100`' ##第二次循环是1+2等于3 + sum=3 + for i in '`seq 1 1

六十九、for循环、while循环、break跳出循环、continue结束本次循环、exit退出整

六十九.for循环.while循环.break跳出循环.continue结束本次循环.exit退出整个脚本 一.for循环 语法:for 变量名 in 条件; do -; done 案例1 # vim for1.sh #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i]     //核心语句 echo $i done echo $sum //最后再echo $sum,不能在for循环里echo,不然每次的sum都打印出来了.让它每次都打

for循环,while循环,break跳出循环,continue结束本次循环,exit直接退出脚本

for循环 语法:for 变量名 in 条件; do -; done 案列1,算出1到10的数字相加等于多少并打印出过程 [[email protected] shell]# cat for1.sh #!/bin/bash sum=0 for i in `seq 1 10` do sum=$[$sum+$i] echo "$sum + $i" done echo $sum [[email protected] shell]# sh -x for1.sh + sum=0 ++ seq 1

Java 中break和continue结合标签标示符中断循环示例详解(附源码)

臭名昭著的goto 编程语言中一开始就有goto关键词了.事实上,goto起源于汇编语言的程序控制:"若条件A成立,则跳到这里:否则跳到那里".如果阅读由编译器最终生成的汇编代码,就会发现程序控制里包含了许多跳转.(Java编译器生成它自己的"汇编代码",但是这个代码是运行在Java虚拟机上的,而不是直接运行在CPU硬件上.) goto语句是在源码级上的跳转,这使其招致了不好的声誉.若一个程序总是从一个地方跳到另一个地方,还有什么办法能识别程序的控制流程呢?自从Ed

循环(for,while,until)与循环控制符(break,continue)

一.for循环 第一种风格   for ((;;;))(类似C语言风格) do command done 例子:for ((i=0;i<10;i++)) do echo $i done 第二种风格   for variable in {list} do command done 例子:for  i  in {1..10..2}   //打印1到10的奇数. do echo $i done a=(1 2 3 9 8 60 625)     //定义数组a for i in ${a[*]}    /

break语句和continue语句

break语句 描述:break语句,用于无条件结束各种循环(退出循环)和switch. 说明:一般情况下,需要在break语句之前加一个条件判断.换句话说:就是条件成立了,就退出循环 continue语句   描述:结束本次循环,而开始下一次循环.continue之后的代码不再执行了.     说明:一般情况下,需要在continue语句之前加一个条件判断.

《C语言》break语句和continue语句(9)

break语句:跳出循环 continue语句:跳过本次循环 #include <stdio.h> int main() { int i; for(i = 1; i < 10; i++) { printf("i value is %d\n", i); if(i = 5) { break; } } //输出5次 for(i = 1; i < 10; i++) { if(i = 5) { continue; } printf("i value is %d\