shell脚本-创建用户的4种思路

Posted 互联网老辛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本-创建用户的4种思路相关的知识,希望对你有一定的参考价值。

大家好,我是沐风,互联网老辛的助理,今天由我分享shell脚本之创建用户的4种思路。

这里只是抛砖引玉,希望你看完之后能够用更多种方法实现,集思广益,用老辛讲的 【穷举法】反复练习。

需求描述:

写一个脚本,创建10个用户,以utest开头,比如utest1 utest2
创建完用户后直接配置密码,密码和用户名相同
脚本创建完用户和密码之后,最终展示一共增加了几个用户,分别是哪些用户?

思路一:

#!/bin/bash
total1=`cat /etc/passwd |wc -l`
for num in 1..10
do
useradd utest$num
echo utest$num |passwd --stdin utest$num
done

total2=`cat /etc/passwd |wc -l`

total=$(($total2 - $total1))
echo "新增加的用户数一共有$total个"
echo "分别是:"
head -n $total /etc/passwd

思路二(郑同学提供的思路):

 cat useradd2.sh 
#!/bin/bash

for i in $(seq 10)
do
useradd user$i
echo user$i | passwd --stdin user$i
if ! id user$i &>/dev/null
then
        echo "error:user$i未创建成功!"
else
        echo "user$i创建成功!"
fi
done
SD=$(cat /etc/passwd | grep user | awk -F ":" 'print $1')
echo  总共增加了 $i 个用户!
echo -e “分别为:$SD

思路三(翟同学提供的思路):

#!/bin/bash
userNum=0                                                                                                                         
for num in 1..6
do
  useradd user$num
  echo user$num|passwd --stdin user$num
  id user$num
  if [ $? -eq 0 ];then
    let userNum+=1
        echo user$num >>users.txt
        echo "user$num用户创建成功!"
  else
        echo "user$num用户创建失败!!!"
  fi
done
printf "总共创建了$userNum个用户,分别是:%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n" $(cat users.txt)

思路四(徐同学提供的思路)

#!/bin/bash
num=0
for j in user1..6;do userdel -r $j >/dev/null;done
for i in user1..6

do
useradd $i
if [ $? -eq 0 ];then
echo$i用户添加成功”
let num++
echo $i | passwd --stdin $i >/dev/null
fi
done
echo " 一共添加了 $num个用户"

穷举法就是在一个脚本上,去使用多种方法解决,不断尝试去优化同一个脚本, 把脚本模块化之后,内化成自己的。

反复练习是成功的保证

以上是关于shell脚本-创建用户的4种思路的主要内容,如果未能解决你的问题,请参考以下文章

Linux中执行shell脚本的4种方法

Linux中执行shell脚本的4种方法总结

Linux Shell 参数传递多种方式

Linux中执行shell脚本的4种方法总结

Linux中执行shell脚本的4种方法总结

Linux中执行shell脚本命令的4种方法总结