bash编程练习,带选项,添加或删除用户

脚本练习题:

  可以接受选项及参数,而后能获取每一个选项,及选项的参数,并能根据选项及参数做出特定的操作;

比如:adminusers.sh -a|--add user .. -d|--del user... -v|--verbose -h|--help 

 

-a|--add user1,user2....:创建一个用户或多个;

-d--del user1,user2....:删除一个用户或多个;

-v|--verbose 显示过程,默认不显示;

-h|--help:显示帮助信息;

过程:

 1 #!/bin/bash
 2 
 3 DEBUG=0
 4 ADD=0
 5 DEL=0
 6 
 7 for I in `seq 0 $#`; do
 8    if [ $# -gt 0 ]; then
 9       case $1 in 
10       -v|--verbose)
11            DEBUG=1
12            shift
13        ;;
14       -h|--help)
15            echo "Usage:`basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
16        exit 0
17        ;;
18        -a|--add)
19            ADD=1
20        ADDUSERS=$2
21        shift 2
22        ;;
23        -d|--del)
24            DEL=1
25        DELUSERS=$2
26        shift 2
27        ;;
28        *)
29            echo "`basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
30        exit 7
31        ;;
32        esac
33    fi
34 done
35 
36 if [ $ADD -eq 1 ]; then
37    for USER in `echo "$ADDUSERS" | sed 's@,@ @g'`; do
38        if id $USER &> /dev/null; then
39           [ $DEBUG -eq 1 ] && echo "$USER exists."
40        else
41            [ $DEBUG -eq 1 ] && echo "Add user $USER finished.Password=USER"
42           useradd $USER
43           echo "$USER" | passwd --stdin $USER &> /dev/null
44        fi
45    done
46 fi
47 if [ $DEL -eq 1 ]; then
48    for DUSER in `echo "$DELUSERS" | sed 's@,@ @g'`; do
49        if id $DUSER &> /dev/null;then
50           [ $DEBUG -eq 1 ] && echo "Delete $DUSER finished."
51           userdel -r $DUSER &> /dev/null
52        else
53           [ $DEBUG -eq 1 ] && echo "$DUSER Not exist."
54        fi
55    done
56 fi

 

posted @ 2018-08-03 20:51  Auroot  阅读(301)  评论(0编辑  收藏  举报