Linux for循环 批量添加用户

这段时间正学到linux的shell编程一块,其中碰到一个用for循环批量导入用户的例子,对于学习挺有帮助的

#!/bin/bash

read -t 30 -p "input name:" name
read -t 30 -p "input num:" num
read -t 30 -p "input password:" pass

if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass"  ]
	then
		y=$(echo $num | sed 's/[0-9]//g')
		if [ -z "$y"  ]
			then
				for (( i=1;i<=$num;i=i+1 ))
					do
						useradd $name$i &>/dev/null
						echo $pass | passwd --stdin $name$i &>/dev/null  	
					done
		fi
fi

其中

y=$(echo $num | sed 's/[0-9]//g')

这句将num中素有数字替换成空字符串的代码也可以用以下正则的表达式书写

y=$(echo $num | sed 's/^[0-9]*$//g')

它的意思是如果num是以数字开头和数字结尾的一个纯数字,那么替换成空字符串,否则不做替换

echo $pass | passwd --stdin $name$i

这句表示给用户赋予新的密码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值