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

while的另外几种用法

时间:2016-06-19 18:42:02      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:while的另外几种用法

while的另外几种用法

 

写一个脚本,完成以下功能:

说明:此脚本能于同一个repo文件中创建多个yum源的指向;

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

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

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

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

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

#!/bin/bash

#

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

if [ -e $1 ];then

  echo "$1 exists."

  exit 3

fi

read -p "Repository ID:" REPOID

until [ $REPOID = ‘quit‘ ];do

 echo"$REPOID" >> RREPOFILE

 read-p "Repository name:" REPONAME

 echo"name=$REPONAME" >> $REPOFILE

 read-p "Repository Baseurl:" REPOURL

 echo"baseurl=$REPOURL" >> $REPOFILE

 echo-e ‘enbled=1\nngpgcheck=0‘ >>$REPOFILE

 read-p "Repository ID:" REPOID

done

echo "hello,word"

---------------------------------------------------------------------------------

breack:提前退出循环

#!/bin/bash

while :; do

who |grep ‘admin‘ &>/dev/null

if [ $? = 0 ];then

break

fi

sleep 5

echo "`date` admin not longin"

done

echo "admin denglu"

------------------------------------------------------------------------------------------------------

#!/bin/bash

#

while :; do

read -p "FILE path:" FILEPATH

 [$FILEPATH = ‘quit‘ ] &&  echo"quit" && break

if [ -e $FILEPATH ];then

  echo "$FILEPATH exists"

else

  echo "NO $FILEPATH"

fi

done

----------------------------------------------------------------------

~                    

continue:提前进入下一轮循环,一定要出发某个条件

-----------------------------------------------------------------------------

while的特殊用法一:无限循环

while :; do     

done

-------------------------------------------------------------------------------------

while的特殊用法二:   使用while来读取文件的每一行。然后进行处理

while  read LINE; do

done </PATH/TO/SOMEFILE

写一个脚本判断passwd文件里所有bin/bash的用户,并把用户名显示出来

#!/bin/bash

#

FILE=/etc/passwd

while read LINE;do

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

done< $FILE

只显示6个用户

#!/bin/bash

#

FILE=/etc/passwd

declare -i I=1

while read LINE;do

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

[ $I -eq 6 ] && break

done < $FILE

~  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如果用户id小于505则不显示

#!/bin/bash

#

FILE=/etc/passwd

declare -i I=1

while read LINE;do

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

[ `echo $LINE | awk -F : ‘{print $3}‘` -lt505 ] && continue

[ $I -ge 6 ] && break

done < $FILE

写一个脚本:

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

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

#!/bin/bash

#

if ! bash $1 &> /dev/null; then

while :; do

  read -p  "Syntax error q|Q toquit, others for editing:" A

[ $A = q -o $A = Q ] &&  exit 5 || vim $1

done

fi


本文出自 “linux运维” 博客,谢绝转载!

while的另外几种用法

标签:while的另外几种用法

原文地址:http://coolcl.blog.51cto.com/4514424/1790757

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