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

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

 

你可能感兴趣的:(Linux)