9.脚本编写练习2---用户添加(1)

本文介绍了两个使用test命令和for语句的Linux脚本练习,旨在帮助用户批量添加系统用户。第一个练习通过/mnt/create_users.sh脚本读取/mnt/userfile中的用户名进行添加。第二个练习不仅添加用户,还根据/mnt/passwdfile设置用户密码。脚本执行过程中,相关信息被控制在命令行输出之外,以避免直接显示。
摘要由CSDN通过智能技术生成
『练习1』:使命令/mnt/create_users.sh /mnt/userfile可为系统添加用户(/mnt/userfil中写入用户名user1 user2 user3)
<使用test命令+for语句实现>
#!/bin/bash
[ "$USER" != "root" ] && {
        echo -e "\033[31mError:Permission Denied !!!\033[0m"
        exit 0
}
[ -z "$1" ] && {
        echo -e "\033[31mError:Please Input userfile following script !!!\033[0m"
        exit 0
}
[ -e "$1" ] || {
        echo -e "\033[31mError:$1 is not exit !!!\033[0m"
        exit 0
}

for USERNAME in `cat $1`
do
        useradd $USERNAME &> /dev/null && {						
                echo -e "\033[32m$USERNAME is created successfully !!!\033[0m"
        }||{
                echo -e "\033[31m$USERNAME is already exit !!!\033[0m"
}
done

useradd $USERNAME &> /dev/null: 将添加用户产生的用户信息放入垃圾桶,不显示出来
在这里插入图片描述在这里插入图片描述
对于for USERNAME in 'cat $1'命令的一点说明下:
该命令使用了for循环,将cat命令查看到的文件内容赋给 USERNAME

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

『练习2』:使命令/mnt/create_users.sh /mnt/userfile /mnt/passwdfile可为系统添加用户,并设置好对应密码(/mnt/passwdfile中写入用户密码user1123 user2456 user3789)
<使用test命令+for语句实现>
#!/bin/bash
[ "$USER" != "root" ] && {
        echo -e "\033[31mError:Permission Denied !!!\033[0m"
        exit 0
}

[ -z "$1" ] && {
        echo -e "\033[31mError:Please Input userfile following script !!!\033[0m"
        exit 0
}
[ -z "$2" ] && {
        echo -e "\033[31mError:Please Input passwdfile following script !!!\033[0m"
        exit 0
}

[ -e "$1" ] || {
        echo -e "\033[31mError:$1 is not exit !!!\033[0m"
        exit 0
}
[ -e "$2" ] || {
        echo -e "\033[31mError:$2 is not exit !!!\033[0m"
        exit 0
}

Max_Line=`awk 'BEGIN{n=0}{n++}END{print n}' $1`
for NUM in `seq 1 $Max_Line `
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 successfully !!!\033[0m"
        }||{
                echo -e "\033[31m$USERNAME is already exit !!!\033[0m"
}
done

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


echo -e "\033[31m输出内容\033[0m" 输出内容显示为红色字体
echo -e "\033[32m输出内容\033[0m" 输出内容显示为绿色字体
-e 激活转译字符
\033~~~\033 固定写法
[0m 关闭属性

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值