#! /bin/bash
第一行的脚本生命#! 用来告诉系统用哪个解释器shell
read -p "Enter The Users Password : " PASSWD
Linux read命令用于从标准输入读取数值。read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
-p后面跟提示信息,即在输入前打印提示信息
PASSWD是变量相当于输入的密码
for UNAME in cat users.txt
for 循环开始 UNAME 是变量 因``用cat 读取了users内容, UNAME相当于 users的内容
do
id $UNAME &> /dev/null
ID是命令,使用方式相当于ID andy 效果是判断系统里有没有andy这个用户。
此处id $UNAME 效果是用来判断系统里有没有用户跟users.txt 内容的名字重名。
&>/dev/null 此处效果是不显示没必要的信息
if [ $? -eq 0 ]
判断是或否
then
echo "Already exists"
else
useradd $UNAME &> /dev/null
如果是就提示已存在
如果否则用命令useradd 给变量$UNAME 添加用户
echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null
if [ $? -eq 0 ]
then "$UNAME , Create success"
else
echo "$UNAME , Create failure"
把输入的密码变量$PASSWD用管道符重定向给下个命令
passwd --stdin 是个命令可以不用敲两遍 输入一遍就可以
然后用if判断语句测试成功与否再输出反馈
fi
fi
done
关闭两个for循环和 if 测试语句。
2 for 循环语句简单用法
for NAME in xx yy zz
do
useradd $NAME
echo password| passwd --stdin $NAME
done