【发布时间】:2021-11-15 07:55:50
【问题描述】:
我希望将多个用户添加到 UNIX Red Hat 系统。我使用两个文本文件作为源,其中包含 9 个用户名和 9 个全名,分别在 9 个新行上分隔。
$U 包含 usernames.txt,$I 包含与 -c 命令一起使用的全名,$Z 包含 1-9 的结束数字以设置 -u 结束值。我希望脚本能够实现的是,它将使用我概述的值填充 useradd 命令,以使 useradd 命令执行使用用户名、注释字段(全名)和 ID 值添加用户。在系统上实际执行脚本的 useradd 命令部分之前,我使用了 echo 命令来测试输出是什么。但是,该脚本实际上将 fullnamecomment.txt 中的空格解释为单独的迭代,并且基本上该脚本会按顺序将相同的查询打印 9 次,将 -u 值加 1。
@Community,任何人都可以提供任何关于优化此脚本或更改我的方法以添加多个用户的输入吗?在 useradd 命令中填充用户名、评论和 ID 值?
谢谢。
#!/bin/bash
for U in $(cat username.txt)
do
for I in $(cat fullnamecomment.txt)
do
for Z in {1..9}
do
#useradd $U -m -c $I -u 10010$Z
echo "useradd $U -m -c $I -u 10010$Z"
done
done
done
【问题讨论】:
-
另外,如果您希望
username.txt的第一行与fullnamecomment.txt的第一行匹配,则每个文件的第二行与另一个文件的第二行匹配,等等,你根本不应该使用嵌套循环。如果这是你想要做的,明确说明,我可以挖掘一个现有的描述该技术的问答问题。 -
顺便说一句,要显示您对某人答案的修改,请使用“添加答案”按钮添加您自己的答案,而不是在问题中编辑答案。请参阅Meta Stack Exchange 上的讨论,包括What to do when OP answers his/her own question in an edit? 和Should I update my question to include the correct answer?
-
谢谢查尔斯!我已经更新了我的问题并添加了一个修改 SteveKlines 分辨率的答案,以使其在我的系统上运行。感谢 CharlesDuffy 和 SteveKline 抽出时间做出回应。非常感激!我希望有一天能回答您的一个问题并回报您的青睐!保重。
标签: bash shell file multiple-users