编写 script.sh
1.
script.sh /mnt/userfile /mnt/passfile
2.
当要建立的用户已经存在,不做任何操作
3.
当脚本后所指定文件个数少于2个
Please give me userfile or passfile
4.
当所给文件的行数不一致
userfile line and passfile line is different!
vim /mnt/script.sh
#!/bin/bash
while [ "$#" -lt "2" ] ##检测文件数目是否小于2
do
echo "ERROR:Please give me userfile or passfile!"
exit 0
done
MAXUSER=`wc -l $1 | cut -d " " -f 1`
MAXPASS=`wc -l $2 | cut -d " " -f 1`
while [ "$MAXUSER" -eq "$MAXPASS" ] ##当所给文件的行数一致时
do
for NUM in $( seq 1 $MAXUSER )
do
USERNAME=`sed -n ${NUM}p $1`
PASSWORD=`sed -n ${NUM}p $2`
CKUSER=`getent passwd $USERNAME` ##检测用户是否存在
[ -z "$CKUSER" ] && (
useradd $USERNAME
echo $PASSWORD | passwd --stdin $USERNAME &>/dev/null
echo $USERNAME/$PASSWORD created successfully!
)||echo "$USERNAME exist!"
done
exit 0
done
1.
script.sh /mnt/userfile /mnt/passfile
2.
当要建立的用户已经存在,不做任何操作
3.
当脚本后所指定文件个数少于2个
Please give me userfile or passfile
4.
当所给文件的行数不一致
userfile line and passfile line is different!
vim /mnt/script.sh
#!/bin/bash
while [ "$#" -lt "2" ] ##检测文件数目是否小于2
do
echo "ERROR:Please give me userfile or passfile!"
exit 0
done
MAXUSER=`wc -l $1 | cut -d " " -f 1`
MAXPASS=`wc -l $2 | cut -d " " -f 1`
while [ "$MAXUSER" -eq "$MAXPASS" ] ##当所给文件的行数一致时
do
for NUM in $( seq 1 $MAXUSER )
do
USERNAME=`sed -n ${NUM}p $1`
PASSWORD=`sed -n ${NUM}p $2`
CKUSER=`getent passwd $USERNAME` ##检测用户是否存在
[ -z "$CKUSER" ] && (
useradd $USERNAME
echo $PASSWORD | passwd --stdin $USERNAME &>/dev/null
echo $USERNAME/$PASSWORD created successfully!
)||echo "$USERNAME exist!"
done
exit 0
done
echo "$1's line and $2's line is different!" ##当所给文件的行数不一致时
本文介绍了一个bash脚本,用于从两个文件中读取用户名和密码,并批量创建系统用户。该脚本会检查输入文件数量、文件行数一致性及用户是否已存在。
1万+

被折叠的 条评论
为什么被折叠?



