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

1.循环控制:

  break:中断整个循环语句,即退出循环后执行脚本后面的语句

  continue:中断当前本次循环,提前进入下一轮循环

  exit:结束脚本运行

2.while死循环,即当不知道循环多少次时

 格式 : while :; do

      循环语句

      done

3.while从输入重定向文件中每行读取并赋值给read变量

 格式:  while read LINE;do

        循环语句

       done < 路径文件

4.实例脚本

 4.1.找出/etc/passwd文件中用户登入是bash,UID大于500的前3个用户,并将其用户名和UID显示出来

#!/bin/bash

let I=1

while read LINE; do 

 if [ `echo $LINE | cut -d: -f3` -lt 500 ]; then  判断UID是否小于500

   continue

 fi

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

  [ $I -gt 3 ] && break

done < /etc/passwd

~               

 4.2.查看willow用户是否登入本系统,除非输入q或Q退出脚本,否则进入死循环

#!/bin/bash

while :;do

 read -p "q|Q is exit,other show do willow come  this system?  " CHOICE

 if [ $CHOICE == "q" -o $CHOICE == "Q" ]; then

    echo "Quiting this script"

    exit 3

 fi

 if who | grep willow &> /dev/null; then

    echo "willow is loginnig this system at `date`"

 else

    echo "willow is not comming at `date`"

 fi

done