『练习』:
方法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