写一个将1-100通过for循环将前50个多小时数分为一组,后50个分为一组的shell脚本并在脚本里创建A,B两个用户组
时间: 2024-02-11 15:09:40 浏览: 18
好的,以下是脚本:
```shell
#!/bin/bash
# 创建A、B两个用户组
sudo groupadd A
sudo groupadd B
# 将1-100中前50个数分配给A组,后50个数分配给B组
for i in {1..50}
do
sudo useradd -g A -d /home/user$i -m user$i
echo "user$i" | sudo passwd --stdin user$i
done
for i in {51..100}
do
sudo useradd -g B -d /home/user$i -m user$i
echo "user$i" | sudo passwd --stdin user$i
done
```
在这个脚本中,我们使用了for循环来创建50个用户,并将他们分配到不同的用户组中。同时,我们使用了sudo命令来获取管理员权限,以便进行用户和用户组的创建。
相关问题
shell脚本for循环怎么写
在Shell脚本中,可以使用for循环来重复执行一段代码。for循环的语法如下:
```shell
for 变量名 in 值列表
do
# 执行的代码块
done
```
其中,`变量名`是循环变量的名称,可以自定义;`值列表`是要循环遍历的值,可以是一组数字、文件名、命令输出的结果等。
以下是一个示例,演示如何使用for循环打印数字1到5:
```shell
for i in 1 2 3 4 5
do
echo $i
done
```
这段代码会依次输出数字1到5。
如果想遍历一组连续的数字,可以使用`{起始值..结束值}`的方式:
```shell
for i in {1..5}
do
echo $i
done
```
这样也会输出数字1到5。
需要注意的是,如果循环变量与Shell内置变量或命令存在重复,可能会导致意外结果。为了避免这种情况,建议使用不常见的变量名。
希望对你有所帮助!如果还有其他问题,请继续提问。
编写一个名为test1.sh的shell脚本,用while循环实现以下内容:创建50个用户,用户名格式 user_[0-50];密码与用户名相同;所有用户都属于user组
以下是一个名为test1.sh的shell脚本,使用while循环创建50个用户,用户名格式为user_[0-50],密码与用户名相同,并且所有用户都属于user组。
```shell
#!/bin/bash
count=0
while [ $count -lt 50 ]
do
username="user_$count"
password=$username
# 创建用户
sudo useradd -m -p $(openssl passwd -1 $password) $username
# 将用户添加到user组
sudo usermod -aG user $username
count=$((count+1))
done
```
请确保在执行脚本之前具有足够的权限,并小心操作,以免对系统产生不必要的影响。