例子1:从命令读取值
目的:在linux系统中创建多个普通用户,用户名来自user.txt
liming
zhangsan
lisi
wangwu
hulu
zhangji
jina
设计思路:遍寻file文件中所有内容,并用useradd $var添加用户名为变量值的普通用户,并设置密码
#!/bin/bash
file='user.txt'
for i in $(cat $file)
do
useradd $i
echo "Cgsl@123" | passwd --stdin $i
done
验证:是否添加用户成功:
cat /etc/passwd | cut -f1 -d ':' | tail -n 7
查看系统配置用户,并剪切第一列(用户)字段,输出后7行
-f, --fields=LIST
输出 这些 字段 -f1输出第一个字段
-d, --delimiter=DELIM
使用 DELIM 取代 TAB 做 字段(field) 分隔符 -d ':'以:作为分割字段
tail -n 7
-n, --lines=N
输出最后N行,而非默认的最后10行
结论:已成功添加7个用户至系统中
例子2:
删除例子1中的新添加的7个用户,用户名文件依然为user.txt,与脚本文件同路径。
设计思路:遍寻user.txt中的变量值,使用userdel -r $username
代码如下:
#! /bin/bash
user=$(cat user.txt)
for username in $user
do
userdel -r $username
done
查看结果 cat /etc/passwd | cut -f1 -d ':' | tail -n 7
[root@ecs robin]# cat /etc/passwd | cut -f1 -d ':' | tail -n 7
systemd-network
dbus
polkitd
postfix
sshd
chrony
tcpdump
可以看出user.txt中的用户已被删除掉