码迷,mamicode.com
首页 > 系统相关 > 详细

linux下Bash编程case语句及编写脚本(八)

时间:2016-04-17 23:20:19      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:linux下bash编程case语句及编写脚本(八)

linux下Bash编程case语句及编写脚本(八)

1.case语句,格式如下:

case 变量 in 

值1)

  语句1

  ...

  ;;  每分支语句以分号结束

值2)

  语句2

  ...

  ;;

*)    其他,相当于if语句else

  语句3

  ...

  ;;

esac   整条case语句结束

2.编写一个任意添加与删除用户的脚本,要求如下:

     2.1:如果脚本选项是-a或--add:,将添加用户; 如果选项是-d或--del,将删除用户,

            如果是-h或--help显示帮助信息,如果是-v或--verbose显示执行过程,否则不显示执行过程

     2.2:脚本选项后面的参数可任意指定多个用户并且用逗号隔开密码同用户名;

     2.3:用户存在就提示不能添加,用户不存在就不能删除用户;尽可能有相关提示信息

  vim admuser.sh  创建一个脚本文件:

#!/bin/bash

ADD=0 增加用户变量开关

DEL=0 删除用户变量开关

DEBUG=0 作为显示执行过程变量开关

#以下判断脚本后面的参数是否正确

for I in `seq 1 $#`; do

  if [ $# -gt 0 ];then

    case $1 in

    -v|--verbose)

        DEBUG=1

        shift

        ;;

    -h|--help)

        echo "Usage:`basename $0` -v|--verbose | -h|--help | -a|--add user1,user2... -d|--del user1,user2..."

        exit 0

        ;;

    -a|--add)

        ADD=1

        ADDUSERS=$2

        shift 2

                     ;;

    -d|--del)

        DEL=1

        DELUSERS=$2

        shift 2

         ;;

     *)

        echo "Usage:`basename $0` -v|--verbose | -h|--help | -a|--add user1,user2... -d|--del user1,user2..."

        exit 8

         ;;

     esac

  fi

done


#以下判断增加用户

if [ $ADD -eq 1 ]; then

   for USER in `echo "$ADDUSERS" | sed ‘s#,# #g‘`; do  取出要添加用户列表

       if ! id $USER &> /dev/null; then          判断用户是否存在,不存在则添加

          useradd $USER

          echo $USER | passwd --stdin $USER &> /dev/null

          [ $DEBUG -eq 1 ] && echo "$USER add successfully" 

       else

          [ $DEBUG -eq 1 ] && echo "$USER exist"

        fi

   done

fi



#以下判断删除用户

if [ $DEL -eq 1 ]; then

   for USER in `echo "$DELUSERS" | sed ‘s/,/ /g‘`; do  取出要删除用户列表

       if id $USER &> /dev/null; then           判断用户是否存在,存在则删除

          userdel -r $USER

          [ $DEBUG -eq 1 ] && echo "$USER del finished"

       else

          [ $DEBUG -eq 1 ] && echo "$USER no exist"


        fi

    done

fi




本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1764856

linux下Bash编程case语句及编写脚本(八)

标签:linux下bash编程case语句及编写脚本(八)

原文地址:http://willow.blog.51cto.com/6574604/1764856

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