20.脚本编写练习11---用户添加(4)

『练习』:

在这里插入图片描述

方法1:使用if语句+test命令+for语句实现
#!/bin/bash
if [ "$#" -lt "2" ]
then
        echo -e "\033[31mPlease Input userlist|passlist following script !\033[0m"
        exit 0
elif [ ! -e "$1" ]			/*当判断脚本后所跟第一个文件是否存在时,同时判断第二个文件是否存在,使执行者在修改命令时更加明确修改对象*/
then
        echo -e "\033[31m$1 is not exist !\033[0m"
        [ -e "$2" ] && {
                echo -e "\033[32m$2 is exist !\033[0m"
        } || {
                echo -e "\033[31m$2 is not exist !\033[0m"
        }
        exit 0
elif [ ! -e "$2" ]			/*当判断脚本后所跟第二个文件是否存在时,说明脚本后所跟第一个文件一定存在(因为if语句是顺序执行命令的)*/
then
        echo -e "\033[31m$2 is not exit !\033[0m"
        exit 0
fi
Max_Line1=`awk 'BEGIN{n=0}{n++}END{print n}' $1`
Max_Line2=`awk 'BEGIN{n=0}{n++}END{print n}' $2`
[ "$Max_Line1" != "$Max_Line2" ] && {
        echo -e "\033[31mError: Number of rows mismatch !\033[0m"
        exit 0
} || {
        for NUM in `seq 1 $Max_Line1`
        do
                USERNAME=`sed -n ${NUM}p $1`
                PASSWORD=`sed -n ${NUM}p $2`
                useradd $USERNAME &> /dev/null && {
                echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null
                echo -e "\033[32m$USERNAME is created successfullly !\033[0m"
        } || {
                echo -e "\033[31m$USERNAME is already exist !\033[0m"
        }
        done
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法2:使用if语句+test命令+for语句实现
#!/bin/bash
if [ "$#" -lt "2" ]
then
        echo -e "\033[31mPlease Input userlist|passlist following script !\033[0m"
        exit 0
elif [ ! -e "$1" ]
then
        echo -e "\033[31m$1 is not exist !\033[0m"
        [ -e "$2" ] && {
                echo -e "\033[32m$2 is exist !\033[0m"
        } || {
                echo -e "\033[31m$2 is not exist !\033[0m"
        }
        exit 0
elif [ ! -e "$2" ]
then
        echo -e "\033[31m$2 is not exit !\033[0m"
        exit 0
else
        Max_Line1=`awk 'BEGIN{n=0}{n++}END{print n}' $1`
        Max_Line2=`awk 'BEGIN{n=0}{n++}END{print n}' $2`
        [ "$Max_Line1" != "$Max_Line2" ] && {
                echo -e "\033[31mError: Number of rows mismatch !\033[0m"
                exit 0
        } || {
		for NUM in `seq 1 $Max_Line1`
                do
                        USERNAME=`sed -n ${NUM}p $1`
                        PASSWORD=`sed -n ${NUM}p $2`
                        useradd $USERNAME &> /dev/null && {
                        echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null
                        echo -e "\033[32m$USERNAME is created successfullly !\033[0m"
                } || {
                        echo -e "\033[31m$USERNAME is already exist !\033[0m"
                }
                done
        }
fi

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值