demo.sh(批量添加及删除老师和学生用户)

#!/bin/bash

#func:add or del user
#author:reed

. /etc/profile

UserCtr=$1
TeacherName=$2
StudentName=$3
StudentNumber=$4

Usage(){
cat<<EOF
--Usage:
        $0 [add/del] [Teacher'sName] [Student'sName] [The number of Students]        $0 shell或shell脚本的名字
        ex.
        $0 add teacher stu 3
--
        add:useradd username
        del:userdel username
        [Teacher'sName]:teacher's name
        [Student'sName]:student's name,just only the beginning of a lowercase letter 
        [The number of Students],only [1-10]
EOF
}

if [ $# -eq 4 ];then    #   $#:参数的个数
        if [ $1 == "add" ];then
                #echo "add"
                if [[ "$2" =~ ^[a-z]+$  &&  "$3" =~ ^[a-z]+$  && "$4" -ge 1 && "$4" -le 10 ]];then
                        #create user $2
                        id $2 >>/dev/null 2>&1
                        if [ $? -ne 0 ];then #  如果上一句命令执行失败。$? 表示上一条命令返回值,如果上一条命令成功执行,返回0,否则返回1. 
                                useradd $2
                                TeacherPasswd=$(date|md5sum|cut -c 1-6)
                                echo $TeacherPasswd|passwd --stdin $2 >>/dev/null 2>&1
                                echo "User [$2] create successfully."
                                echo "$2:$TeacherPasswd"
                        else
                                echo "The user [$2] is exist."
                        fi
                        for ((num=1;num<=$4;num++));do
                                id ${3}${num} >>/dev/null 2>&1
                                if [ $? -ne 0 ];then
                                        useradd ${3}${num}
                                        StudentPasswd=$(echo $RANDOM|md5sum|cut -c 1-6)
                                        echo $StudentPasswd|passwd --stdin ${3}${num} >>/dev/null 2>&1
                                        echo "User [${3}${num}] create successfully."
                                        echo "${3}${num}:$StudentPasswd"
                                else
                                        echo "The user [${3}${num}] is exist."
                                fi
                        done
                else
                        echo "Parameter error!"
                        exit 10000
                fi
        elif [ $1 == "del" ];then
			userdel $2 
			if [ $? -ne 0 ];then
				echo "User [$2] is error"
			else
				echo "delete user [$2] success"
			fi
			for ((num=1;num<=$4;num++));do
							userdel ${3}${num}
				if [ $? -ne 0 ];then
					echo "User [${3}${num}] name is error"
				else
					echo "delete user [${3}${num}] success"
				fi
			done
                #echo "Please delete user manually."
        else
                echo "Parameter error!Please input [add] or [del]."
                exit 10086
        fi
else
        Usage
fi

### 编写 demo.sh 脚本以实现应用的启停操作并解决 telnet 命令未找到的问题 以下是满足需求的脚本 `demo.sh` 的内容,该脚本根据参数 `start` `stop` 实现应用的启动停止,并解决 `-bash: telnet: 未找到命令` 的问题。 ```bash #!/bin/bash # 检查是否安装了 telnet 客户端 if ! command -v telnet &> /dev/null; then echo "telnet 未安装,正在尝试安装..." if [ -f /etc/redhat-release ]; then # 对于基于 Red Hat 的系统(如 CentOS 或 Fedora) sudo yum install -y telnet elif [ -f /etc/lsb-release ] || [ -f /etc/debian_version ]; then # 对于基于 Debian 的系统(如 Ubuntu) sudo apt update sudo apt install -y telnet else echo "无法识别的操作系统类型,请手动安装 telnet。" exit 1 fi fi # 检查参数 if [ "$1" == "start" ]; then echo "正在启动应用..." # 启动应用的逻辑 # 示例:启动一个简单的服务 nohup python3 app.py > app.log 2>&1 & echo "应用已启动。" elif [ "$1" == "stop" ]; then echo "正在停止应用..." # 停止应用的逻辑 # 示例:查找并杀死运行中的 Python 应用进程 pkill -f "python3 app.py" echo "应用已停止。" else echo "使用方法: $0 {start|stop}" exit 1 fi ``` #### 脚本功能说明 - **检查 telnet 是否已安装**:通过 `command -v telnet` 判断是否已安装 telnet[^3]。如果未安装,则根据操作系统类型自动安装。 - **应用启停**:根据传入的参数 `start` 或 `stop` 执行相应的操作。`start` 参数用于启动应用,`stop` 参数用于停止应用。 - **跨平台支持**:脚本能够识别基于 Red Hat Debian 的系统,并分别执行对应的包管理工具进行 telnet 的安装。 #### 测试脚本 将上述脚本保存为 `demo.sh`,赋予可执行权限后测试: ```bash chmod +x demo.sh ./demo.sh start # 启动应用 ./demo.sh stop # 停止应用 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值