这段时间正学到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
这句表示给用户赋予新的密码