思路:
判断用户是否存在,标记flag
存在,修改用户密码
不存在,创建用户并修改密码
#!/bin/bash #the script act on a batch of add user,username at the same password name="admin" password="demo" userList="cat /etc/passwd | awk -F ':' '{print $1}'" flag=false for name in $userList; do #statements flag=true done if [ $flag=true ]; then #change password echo "user exist" else echo "create user admin" useradd /home/$name $name fi echo "change password to demo" echo $password | passwd --stdin $name echo "succeed"
输出如下:
实际:
用户不存在且没有创建成功
用id命令判断岂不是更方便?
注意你的useradd指定家目录参数,否则是执行不成功的。
而且判断用户是否存在于/etc/passwd中,也可以用:
看看是否等于0。
你这用户应该是包含了}符号的原因