搜尋

首頁  >  問答  >  主體

linux - shell创建用户,报错“passwd: Unknown user name '}''.”

思路:
判断用户是否存在,标记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"

输出如下:


实际:
用户不存在且没有创建成功

PHPzPHPz2776 天前2406

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 13:56:01

    用id指令判斷豈不是比較方便?

    id admin >& /dev/null
    if [ $? -ne 0 ]
    then
    #不等于0,创建用户
        echo "create user admin"
        useradd -d /home/admin -m admin
    else
    #等于0说明用户已经存在
        echo "user exist"
    fi

    注意你的useradd指定家目錄參數,否則是執行不成功的。
    而且判斷使用者是否存在於/etc/passwd中,也可以用:

    grep admin /etc/passwd >& /dev/null;echo $?
    

    看看是否等於0。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:56:01

    你這用戶應該是包含了}符號的原因

    回覆
    0
  • 取消回覆