while的另外几种用法
2016-06-19 12:24
274 查看
while的另外几种用法
写一个脚本,完成以下功能:
说明:此脚本能于同一个repo文件中创建多个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
#!/bin/bash#REPOFILE=/etc/yum.repos.d/$1if [ -e $1 ];then echo "$1 exists." exit 3firead -p "Repository ID:" REPOIDuntil [ $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:" REPOIDdoneecho "hello,word"
---------------------------------------------------------------------------------break:提前退出循环#!/bin/bashwhile :; dowho |grep 'admin' &>/dev/nullif [ $? = 0 ];thenbreakfisleep 5echo "`date` admin not longin"doneecho "admin denglu"------------------------------------------------------------------------------------------------------#!/bin/bash#while :; doread -p "FILE path:" FILEPATH [$FILEPATH = 'quit' ] && echo"quit" && breakif [ -e $FILEPATH ];then echo "$FILEPATH exists"else echo "NO $FILEPATH"fidone----------------------------------------------------------------------~ continue:提前进入下一轮循环,一定要出发某个条件-----------------------------------------------------------------------------while的特殊用法一:无限循环
while :; do
done-------------------------------------------------------------------------------------while的特殊用法二: 使用while来读取文件的每一行。然后进行处理while read LINE; do
done </PATH/TO/SOMEFILE
写一个脚本判断passwd文件里所有bin/bash的用户,并把用户名显示出来#!/bin/bash#FILE=/etc/passwdwhile read LINE;do
[ `echo $LINE | awk -F : '{print $7}'` =='/bin/bash' ] && echo $LINE | awk -F : '{print $1}'done< $FILE只显示6个用户#!/bin/bash#FILE=/etc/passwddeclare -i I=1while 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/passwddeclare -i I=1while 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. 判断一个指定的bash脚本是否有语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出,其他任何键可以通过vim打开这个脚本
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
donefi
本文出自 “linux运维” 博客,谢绝转载!
写一个脚本,完成以下功能:
说明:此脚本能于同一个repo文件中创建多个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
#!/bin/bash#REPOFILE=/etc/yum.repos.d/$1if [ -e $1 ];then echo "$1 exists." exit 3firead -p "Repository ID:" REPOIDuntil [ $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:" REPOIDdoneecho "hello,word"
---------------------------------------------------------------------------------break:提前退出循环#!/bin/bashwhile :; dowho |grep 'admin' &>/dev/nullif [ $? = 0 ];thenbreakfisleep 5echo "`date` admin not longin"doneecho "admin denglu"------------------------------------------------------------------------------------------------------#!/bin/bash#while :; doread -p "FILE path:" FILEPATH [$FILEPATH = 'quit' ] && echo"quit" && breakif [ -e $FILEPATH ];then echo "$FILEPATH exists"else echo "NO $FILEPATH"fidone----------------------------------------------------------------------~ continue:提前进入下一轮循环,一定要出发某个条件-----------------------------------------------------------------------------while的特殊用法一:无限循环
while :; do
done-------------------------------------------------------------------------------------while的特殊用法二: 使用while来读取文件的每一行。然后进行处理while read LINE; do
done </PATH/TO/SOMEFILE
写一个脚本判断passwd文件里所有bin/bash的用户,并把用户名显示出来#!/bin/bash#FILE=/etc/passwdwhile read LINE;do
[ `echo $LINE | awk -F : '{print $7}'` =='/bin/bash' ] && echo $LINE | awk -F : '{print $1}'done< $FILE只显示6个用户#!/bin/bash#FILE=/etc/passwddeclare -i I=1while 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/passwddeclare -i I=1while 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. 判断一个指定的bash脚本是否有语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出,其他任何键可以通过vim打开这个脚本
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
donefi
本文出自 “linux运维” 博客,谢绝转载!
相关文章推荐
- Java虚拟机(JVM)以及跨平台原理
- 游标的使用
- matlab从入门到精通(一)安装软件及使用方法
- VS”不能设置下面断点“和”无法单步执行“问题
- ios计算函数的执行时长
- Ubuntu 14.04 安装录音软件Audacity
- mysqladmin
- android 开发 - 网络图片加载库 Fresco 的使用。
- RecyclerView及SwipeRefreshLayout的使用
- 水平垂直居中方案
- 【南理oj】93 - 汉诺塔(三)(栈)
- 山东省第七届ACM大学生程序设计竞赛-Reversed Words
- Arduino 卡片13自制风扇
- DOM基础及应用(一)
- 杭电2091之空心三角形
- android CoordinatorLayout使用
- Win10 + cygwin64 + ndk 配置ijkplayer android
- 给“习得性无助”者的回信
- 人生做出的选择越多,友谊的小船翻得越快?
- Android:AppCompat does not support the current theme features