Shell 添加一个新组为class1,添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01 到30 ?
参考回答
可以编写一个Shell脚本来实现以下操作:
- 创建一个名为
class1
的新组。 - 创建30个用户,用户名的形式为
std01
到std30
,并将这些用户添加到class1
组中。
脚本:
详细讲解与拓展
- 创建组
class1
:groupadd class1
:创建一个名为class1
的新组。如果该组已经存在,这条命令会返回错误。
- 创建30个用户:
for i in $(seq -f "%02g" 1 30)
:seq
命令生成从1到30的数字,并通过-f "%02g"
格式化为两位数(如01
,02
, …,30
)。这个循环会执行30次,生成30个用户名。
username="std$i"
:根据循环的变量i
,生成每个用户的用户名,如std01
、std02
、……、std30
。-
useradd -m -g class1 $username
:创建用户stdXX
,并将其添加到class1
组。-m
选项会自动创建该用户的家目录(例如/home/std01
),-g class1
指定用户的主组为class1
。
- 输出信息:
echo "User $username created and added to class1"
:每次创建用户后,输出提示信息,告知用户已经创建并添加到class1
组。
执行脚本的步骤
-
将脚本保存到文件,例如
create_users.sh
: - 给脚本文件添加执行权限:
- 以管理员身份(或具有足够权限的用户)执行脚本:
总结
这个脚本会在系统中创建一个新组 class1
,并创建30个用户(用户名为 std01
到 std30
),同时将这些用户添加到 class1
组中。