使用Bash从文本文件创建用户

时间:2019-03-06 12:23:16

标签: linux bash

我一直在寻找这个问题的其他答案,但是它并没有解决我的问题。

基本上,我需要创建一个脚本,该脚本从用户输入给出的文本文件中读取,并根据文件的内容创建用户。我设法让它创建了第一个用户,但似乎并没有在文件中创建其他用户。

我的文本文档的字面意思是:

user1
user2
user3

这是我的代码: echo -n "Enter name of text file "; read text while read USER; do USERNAME=$(cut -d$'\n' -f $text) echo $USERNAME useradd -m "${USERNAME}" done < $text

似乎只读取文本文件中的第一个条目,但是我认为使用\ n意味着它会剪切其他行并在接下来使用它们?我尝试改用'cat'命令,但运气不佳,这是我所能获得的最大成功,但我希望有人能帮助我找出问题所在。 谢谢:)

2 个答案:

答案 0 :(得分:0)

您可以使用awk进行打印并将其通过管道传递到外壳上

$ awk '{print "useradd -m "$1}' <file> | sh

答案 1 :(得分:0)

首先,您应该使用以下命令启动脚本

#!/usr/bin/env bash

以确保将其解释为bash。

第二,您需要的值已经在USER变量中可用。无需使用cut

#!/usr/bin/env bash

echo -n "Enter name of text file: "; read FILENAME
while read USER; do
    echo "$USER"
    useradd -m "${USER}"
done < "${FILENAME}"