码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-31 17:34:41      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:脚本   提前退出循环   跳过此次循环   

写一个脚本,此脚本能于同一个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 

回顾:.,$s@/etc/yum.repos.d/$1@$REPOFILE@g 从当前行到最后一行 替换这个为那个

#!/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












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

标签:脚本   提前退出循环   跳过此次循环   

原文地址:http://10183596.blog.51cto.com/10173596/1690138

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!