闲着没事把之前的一些shell面试题分享一下
创建用户,这道题考点:正则对比,eval
使用
#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin read -p "请输入用户名前缀:" A read -p "请输入创建用户个数:" B [[ "$B" =~ ^[0-9]+$ ]] || echo "输入错误,请输入整数" read -p "请输入用户密码:" -s C [[ "$C" =~ ^[0-9]+$ ]] || echo "输入错误,请输入整数" for i in `eval echo ${A}{1.."$B"}`;do useradd $i echo $C |passwd --stdin $i done
规则创建用户
#!/usr/bin/sh #Version V1.0 #Author ChenGuilin #Create Time 2018-11-5 #QQ 21108858 #添加`user_00->user_09`10个用户, 并且给他们设置一个随机密码, 密码要求10位包含大小写字母以及数字, 注意需 要把每个用户的密码记录到一个日志文件中 UserDB="/etc/passwd" Nulls="/dev/null" >/$PWD/008.useradd.log for ((i=0;i<=9;i++)) do Password=`/server/scripts/bin/rand 10` UserName=user_0$i id $UserName &>$Nulls && continue if [[ "$Password" =~ ^[0-9]{10}$ ]];then echo "密码符合要求">>$PWD/008.useradd.log fi useradd $UserName &>$Nulls id $UserName &>$Nulls if [ $? -eq 0 ];then echo $Password|passwd --stdin $UserName &>$Nulls echo `date +%F_%T`" 添加用户成功,用户名为:"$UserName" 密码:"$Password >>$PWD/008.useradd.log fi done