初学shell写的一个小脚本,可以查询Linux用户是否存在,修改已有用户的密码。如果用户不存在进行创建用户,密码匹配。请大佬们指点,那些可以优化。刚学到if流控。代码如下:
#!/bin/bash
read -p "请输入用户的名字:" name
if id $name &>/dev/null
then
echo "用户已经存在!"
#修改已有用户密码
read -p "你想修改已有账号密码吗?[yes/no]:" xf
if [ $xf = "yes" ]
then
read -s -p "请输入密码,7到16位:" password1
echo #换行
read -s -p "请再次输入密码,7到16位:" password2
if [ "$password1" == "$password2" ] && [ ${#password1} -ge 7 -a ${#password1} -le 16 ]
then
echo $password1 | passwd --stdin $name &> /dev/null
echo #换行
echo "密码修改为 "$password1" "
else
echo #换行
echo "密码有问题无法修改!"
fi
else echo "不做任何修改!"
fi
#修改已有密码结束
#用户不存在创建流程开始
else
read -p "请输入密码,格式为7到16位,包含小写字母,大写字母,特殊字符@._!:" password
if [ ${#password} -ge 7 -a ${#password} -le 16 ] && [[ $password =~ [a-z] ]] && [[ $password =~ [A-Z] ]] && [[ $password =~ [@_.!] ]]
then
useradd $name
echo $password | passwd --stdin $name &> /dev/null
echo " "$name" 创立,密码为 "$password" "
else
echo "用户密码不合格无法创建!"
fi
#创建流程结束
fi