我一直在寻找这个问题的其他答案,但是它并没有解决我的问题。
基本上,我需要创建一个脚本,该脚本从用户输入给出的文本文件中读取,并根据文件的内容创建用户。我设法让它创建了第一个用户,但似乎并没有在文件中创建其他用户。
我的文本文档的字面意思是:
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'命令,但运气不佳,这是我所能获得的最大成功,但我希望有人能帮助我找出问题所在。 谢谢:)
答案 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}"