Shell 编程(实例一)

创建一个脚本 admin.sh

完成如下作用:

  -h | --help : 提供帮助信息

  --add  Users : 完成用户添加

  -del User | --delete : 完成用户删除

  -v : 开启调试模式,显示信息

可以同时使用以上所有命令

#!/bin/bash
#
DEBUG=0
ADD=0
DELETE=0
for i in `seq 1 $#`
do
case $1 in
-h|--help)
        echo "--v --help --add --delete --userlist"
        ;;
-v|--versbo)
        DEBUG=1
        shift
        ;;
--add)
        ADD=1
        ADDUSERS=`echo $2 | sed 's@,@ @g'`
        shift 2
        ;;
-del|--delete)
        DELETE=1
        DELETEUSERS=`echo $2 | sed 's@,@ @g'`
        shift 2
        ;;
*)
#       echo 'Usage : `basename $0` --add USERLIST --delete USERLIST --v|--verbose --help'
#       exit 7
        ;;
esac
done

if [ $ADD -eq 1 ]
then
        for USER in $ADDUSERS
        do
                if id $USER &> /dev/null
                then
                        [ $DEBUG -eq 1 ] && echo "$USER is exists!"
                else
                        useradd $USER
                        [ $DEBUG -eq 1 ] && echo "$USER add succefully!"
                fi
        done
fi

if [ $DELETE -eq 1 ]
then
        for USER in $DELETEUSERS
        do
                if id $USER &> /dev/null
                then
                        userdel $USER
                        [ $DEBUG -eq 1 ] && echo "$USER delete successfully!"
                else
                        [ $DEBUG -eq 1 ] && echo "$USER not exist!"
                fi
        done
fi

 随机生成10个用户,并随机生成10位密码,把生成后的用户名和密码保存到文件

ADDUSER(){
        USER=$1
        PASSWD=$2
        useradd $1 && echo $1:$2 | chpasswd
        echo User:$1 pass:$2 >> /home/eko/test/user.log
}

DELUSER(){
        USER=$1
        userdel $1
}

OPREATE=$1
if [ $OPREATE == 'add' ]
then
        for((i=0;i<10;i++))
        do
                ADDUSER "eko$i" `openssl rand -base64 10`
        done
elif [ $OPREATE == 'del' ]
then
        for((i=0;i<10;i++))
        do
                DELUSER "eko$i"
        done
else
        echo "参数错误"
fi
原文地址:https://www.cnblogs.com/xiaoliwang/p/8997050.html