#######脚本建立用户并设置密码#####
脚本生成过程
vim test1.sh ##判断是否有两个参数
#!/bin/bash
while [ "$#" -ne "2" ]
do
echo "please give me a usernamefile and passwordfile!"
exit 0
done
vim test2.sh ##判断两个文件的行数是否相等
#!/bin/bash
while [ `wc -l $1 | cut -d " " -f 1` -ne `wc -l $2 | cut -d " " -f 1` ]
do
echo "$1's line is different from $2's line";
exit 0
done
vim test3.sh ##建立用户并设置密码
#!/bin/bash
for NUM in $( seq 1 `wc -l $1 | cut -d " " -f 1` )
do
NAME=`sed -n ${NUM}p $1`
PASSWD=`sed -n ${NUM}p $2`
`useradd $NAME `
[ `echo $PASSWD | passwd --stdin $NAME` ]
done
vim test4.sh ##判断是否有两个文件并判断行数是否相等
#!/bin/bash
if [ "$#" != "2" ];
then echo "please give me a userfile and passwordfile!";
elif [ `wc -l $1 | cut -d " " -f 1` != `wc -l $2 | cut -d " " -f 1` ];
then echo "$1 is different from $2";
fi
脚本实现(判断脚本后面的文件是否为两个,判断两个文件行数是否相等,用用户文件和密码文件建立用户,用户存在是不做任何操作)
1.test6.sh $1 $2 实现建立用户并设置密码
2.当建立的用户存在时不做任何操作
3.当脚本所指定的文件个数少于两个是,输出 please give me a userfile and passwordfile!
4.当所给文件行数不一致时,输出echo "$1's line is different from $2's line";
vim test5.sh
#!/bin/bash
if [ "$#" != "2" ]; ##判断脚本后面的文件是否为两个, !=表示不等于
then echo "please give me a userfile and passwordfile!";
elif [ `wc -l $1 | cut -d " " -f 1` != `wc -l $2 | cut -d " " -f 1` ]; ##判断行数是否相等,wc -l计算 行数
then echo "$1's line is different from $2's line";
else for NUM in $( seq 1 `wc -l $1 | cut -d " " -f 1` ) ##如果相等则执行此命令,将行数赋值给NUM
do
NAME=`sed -n ${NUM}p $1` ##$1文件中的内容一次取一行赋给NAME
PASSWD=`sed -n ${NUM}p $2` ##$2文件中的内容一次取一行赋给PASSWD
id $NAME &> /dev/null ##判断用户是否存在
if [ "$?" != "0" ]; ##如果不存在,建立用户并设置密码
then `useradd $NAME `
[ `echo $PASSWD | passwd --stdin $NAME` ] &> /dev/null;
else echo " $NAME is exists! " ##存在则输出该用户已存在
fi
done
fi
判断脚本后面的文件是否为两个,判断两个文件行数是否相等
用用户文件和密码文件建立用户,用户存在是不做任何操作,提示该用户已存在
测试
登陆建立的新用户,验证用户名与密码是否对应,验证本来存在的用户信息没有改变(student用户的密码没有被改变)