01 前言
shell脚本已经学习了很长一段时间了,现在时不时来看一些经典的面试题,复习一些常用知识点,温故知新,为明天做准备~
02 根据文件内容创建用户名及密码
背景:写一个脚本,满足一下需求及应用,如一个文件的内容如下,根据文件内容实现批量创建用户,第一列为用户名,第二列为密码
测试文件test.list这个题目相信大家都很熟悉了,面试甚至是实际工作应用当中都会经常用到
今天我们来看看实现思路。
第一步:按行读取文件,推荐用while read line 的模式
先写脚本框架
while read line 按行读取文件第二部:将用户名和密码分别取出来,并赋值给变量
这里用awk实现
取出用户名、密码列并赋值第三步:创建用户用useradd,同步创建密码可以用非交互式实现,即
创建用户名及密码第四步:考虑几种特殊情况
万一要创建的用户本来就存在呢?所以应加个判断,用户存在不做操作,用户不存在再执行
考虑用户已存在的情况还有,创建用户操作只有root账户有权限,所以一开始就应该判断当前用户是不是root
判断用户是不是root脚本就写好啦,执行一下看看效果:
测试效果可以看到,用户和密码都已成功创建,但是id判断用户时有不想看到的输出,再改一下,完整的脚本如下:
完整脚本再次执行,就不会有用户不存在这条无须存在的输出了
03 总结
这是一个工作和面试都非常经典的案例,知识点总结如下:
3.1 判断用户是否为root,echo $UID ,root账户为0,其余非0
3.2 按行读取文件,while read line 模式
3.2 判断用户是否存在,id user
3.4 非交互式创建用户名及密码 echo ****** | passwd user --stdin
网友评论