题干如下:

建立一个文本文件,名为:user.txt,文件格式如下所示,每行的第一个字符串对应用户名,第二个字符串对应为初始密码,一共10行数据。
aaa abc123456
bbb cdef90800
ccc 123abclin
……
编程实现如下功能:建立10个账号信息,其中用户名和初始密码从文件user.txt中读取。为简化操作,假设系统中不存在重名账号。

先看一下user.txt的内容
在这里插入图片描述
我在网上巴拉了很久,没找到合适的方法去给两个变量一起赋值,最后灵光一闪可以使用grep命令


#!/bin/bash
touch temp.txt
awk '{print $1}' user.txt | while read names
do
	useradd $names
	grep "$names" user.txt | cat > temp.txt
	awk '{print $2}' temp.txt|while read pws
	do 
		echo $pws | passwd --stdin $names 
	done
	echo "`useradd` $names is OK"
done

下面是我写代码过程中写的一个del脚本,删除用户的,在编写创建脚本的时候顺道写的,del脚本也就一起放上了(用到了数组)

#!/bin/bash
count1=0
count2=0
unames[0]=a
upwds[0]=a
awk '{print $1}' user.txt | while read names
do
	unames[$count1]=$names
	echo "${unames[$count1]}"
	userdel -rf ${unames[$count1]} 
	
	count1=$[ $count1 + 1 ]
	userdel -rf "test$count1" 
	
done

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐