使用for语句批量添加与删除特定用户: for语句的操作对象为用户指定名称的变量,并通过in关键字为该变量预先设置了一个取值列表,多个取值之间以空格进行分隔。为于do....done之间的命令序列称为循环体。

[root@localhost /]# vim user.txt 
zhangsan
wangwu
zhaoliu
[root@localhost /]# vim useradd.sh 
#!/bin/bash
a=$(cat /sh/user.txt)
for b in $a
do
        useradd  $b
				echo "123456"  |  passwd --stdin  $b &> /dev/null
done
[root@localhost /]# . useradd.sh 
[root@localhost /]# tail -5 /etc/passwd
.......     省略部分
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
wangwu:x:1002:1002::/home/wangwu:/bin/bash
zhaoliu:x:1003:1003::/home/zhaoliu:/bin/bash

删除刚刚添加的用户:

[root@localhost /]# vim sh/userdel.sh
#!/bin/bash
a=$(cat /sh/user.txt)
for b in $a
do
        userdel -r $b &> /dev/null
done
[root@localhost sh]# . userdel.sh 
[root@localhost sh]# tail -5 /etc/passwd
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lisi:x:1000:1000:lisi:/home/lisi:/bin/bash

使用while语句批量添加和删除用户名有规律的账号: 使用while语句是,有两个特殊的条件测试操作,即true(真)和false(假)。使用true作为条件时,表示条件永远成立,循环体内的命令将无限执行下去,除非强制终止脚本,或通过exit语句退出脚本;反之,若使用false作为条件,则循环体将不会被执行,这两个特殊条件也可以用在if语句的条件测试中。

[root@localhost sh]# vim while.sh
#!/bin/bash
a="user"
i=1
while [ $i -le 5 ]
do
        useradd $a$i
        echo "123456" | passwd --stdin $a$i &> /dev/null
        let i++
done
[root@localhost sh]# ./while.sh 
[root@localhost sh]# tail -5 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1003:1003::/home/user3:/bin/bash
user4:x:1004:1004::/home/user4:/bin/bash
user5:x:1005:1005::/home/user5:/bin/bash

删除

[root@localhost sh]# vim whiledel.sh
#!/bin/bash
a="user"
i=1
while [ $i -le 10 ]
do
        userdel -r $a$i &> /dev/null
        let i++
done