判断的方式批量创建用户和密码(非交互式)

文章目录

  • 需求
  • 说明
    • 方法一
    • 方式二

需求

此脚本能够实现创建本地用户,脚并且这些用户的用户名来自一个包含用户名列表的文 件,同时满足下列要求:
此脚本要求提供一个参数,此参数就是包含用户名列表的文件
如果没有提供参数,此脚本应该给出下面提示信息Usage: /root/batchusers userfile,并且退出返回相应的值 ,如果提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found然后退出并返回相应的值
创建的用户shell/bin/false
密码为:123

说明

这个脚本是在本机上运行的,不是交互式,我shell分类中有说过交互式的使用方式,也可以结合交互式脚本使用批量为其他服务器批量创建用户名。

方法一

下面重要参数说明:
$#:执行脚本后面是否有输入参数
-f $1:-f是判断文件,$1是第一次参数
exit:后面的数字可不加,是为了方便查看这是第几个exit,但下面位置的exit必须要加,否则脚本不能按预期运行。


[root@server0 ~]# cat q
c1
c2
c3
[root@server0 ~]# 
[root@server0 ~]# cat /etc/foo.sh 
#!/bin/bash

if [ $# -eq 0 ] ;then
	echo "Usage: /root/batchusers userfile"
	exit 1
fi
if [ -f  $1 ] ;then
 	for userlist in `cat $1` ;do
	useradd -s /bin/false $userlist
	echo 
	done
else
		echo "Input file not found"	
fi

root@server0 ~]# chmod +x /etc/foo.sh
[root@server0 ~]# sh /etc/foo.sh 
Usage: /root/batchusers userfile
[root@server0 ~]# sh /etc/foo.sh a
Input file not found
[root@server0 ~]# sh /etc/foo.sh a3
Input file not found
[root@server0 ~]# 
[root@server0 ~]# sh /etc/foo.sh q
Changing password for user c1.
passwd: all authentication tokens updated successfully.
Changing password for user c2.
passwd: all authentication tokens updated successfully.
Changing password for user c3.
passwd: all authentication tokens updated successfully.
[root@server0 ~]# 

方式二

下面重要参数说明:
$#:执行脚本后面是否有输入参数
-f $1:-f是判断文件,$1是第一次参数
exit:后面的数字可不加,是为了方便查看这是第几个exit,但下面位置的exit必须要加,否则脚本不能按预期运行。

[root@server0 ~]# cat w
ccx1
ccx2
ccx3
[root@server0 ~]# cat /etc/batchusres 
#!/bin/bash

if [ $# -eq 1 ] ;then
	if [ -f $1 ] ;then
		for  username in `cat $1`;do
		useradd -s /bin/false $username
		echo "123" | passwd --stdin $username
		done
	else
		echo "Input file not found"
		exit 1
	fi
else
	echo "Userge:/Userge: /root/batchusers userfile"
	exit 2
fi	
[root@server0 ~]# chmod +x /etc/batchusres
[root@server0 ~]# sh /etc/batchusres ^C
[root@server0 ~]# sh /etc/batchusres 
Userge:/Userge: /root/batchusers userfile
[root@server0 ~]# sh /etc/batchusres  b
Input file not found
[root@server0 ~]# sh /etc/batchusres  2
Input file not found
[root@server0 ~]# sh /etc/batchusres w
Changing password for user ccx1.
passwd: all authentication tokens updated successfully.
Changing password for user ccx2.
passwd: all authentication tokens updated successfully.
Changing password for user ccx3.
passwd: all authentication tokens updated successfully.
[root@server0 ~]# 

你可能感兴趣的:(shell,linux,shell)