需要脚本帮助。该脚本将从文本doc作为参数接收名称列表和分配的组,然后从给定组和用户的名称,随机密码和主目录创建唯一的用户名。我坚持将已分配的组与该组的新用户名进行匹配,并制作一个while循环,用于测试新创建的用户名是否已在系统中,如果没有,则在主目录中添加用户和组。例如。 /家庭/组/用户名。 我做了一个if语句,测试用户是否已经存在,否则添加用户。我想用while循环代替if else。
输入是一个文本文档,其中包含按以下顺序列出的多个名称 最后一个中间组 示例
smith joe t student
barnes tom r manager
脚本将从名字和姓氏中取出第一个字符,并在其中添加三个随机数,以便为列表中的每个名称创建唯一的用户名。我在函数createLogin
中完成了这个。接下来,我陷入困境,我需要一个while循环来测试系统是否已经有用户名createLogin
,并在主目录中添加用户和组。
if id -u $user >/dev/null 2>&1
then
user=$(createLogin) # If user already exists, create new username
else
# add new user and group. ie. /home/group/user`
答案 0 :(得分:0)
改为使用递归函数。
#!/bin/bash
function check_user_exists() {
if id -u $1 >/dev/null 2>&1; then
# username exists - try another username and loop
user=$(createLogin)
check_user_exists $user
else
# create user
fi
}
while read line
do
user=$(createLogin)
check_user_exists $user
done
useradd
命令还允许您使用-G
选项按名称将新用户添加到特定组。