如何从文本文件输入创建用户帐户

如何从文本文件输入创建用户帐户

需要创建一个 bash 脚本来从包含以下内容的文件创建用户名(用户名主目录全名)

drs /home/drs Paranas Theruwalan

我的脚本:

!#/bin/bash
#call data from file
file="file.txt"
USERNAME=$(cat file.txt | cut -d: -f1)

USER_FULLNAME=$(cat file.txt | cut -d: -f2)

useradd -m ($USERNAME) -c ($USER_FULNAME)

我收到无效的用户名错误。

答案1

您的分隔符、空格或冒号是什么?您的示例建议使用空格,您的代码建议使用冒号。

你可以在 bash 中做到这一点。

#!/bin/bash
file="file.txt"
while IFS=: read USERNAME USER_HOME USER_FULLNAME; do
    useradd -m -c "$USER_FULLNAME" -d "$USER_HOME" "$USERNAME"
done < "$file"

此示例假设输入文件包含以下行

drs:/home/drs:Paranas Theruwalan

答案2

首先,您应该删除使用变量的 (): useradd -m ${USERNAME} -c ${USER_FULNAME}

其次检查用户名的输出,可能包含无效字符。

答案3

干得好:

#!/bin/bash
#call data from file
FILE="file.txt"
USERNAME=$(cut -d " " -f 1 $FILE)
USER_FULLNAME=$(cut -d " " -f 3,4 $FILE)
useradd -m -c "${USER_FULLNAME}" "${USERNAME}" 

相关内容