[root@localhost code]# cat read_num.sh
#!/usr/bin/bash
###########################################################
#useradd #
#v1.0 by wesley 21/4/2020 #
###########################################################
read -p "Please input a number: " num
while true
do
if [[ "$num" =~ ^[0-9]+$ ]];then
break
else
echo "error number!"
read -p "Please input a number: " num
fi
done
while true
do
read -p "Please input prefix:" prefix
if [ -n "$prefix" ];then
break
else
read -p "Please input prefix:" prefix
fi
done
for i in `seq $num`
do
user=$prefix$i
useradd $user
echo "123"| passwd --stdin $user &>/dev/null
if [ $? -eq 0 ];then
echo $user created
fi
done
[root@localhost code]#
[root@localhost code]# sh read_num.sh
Please input a number: a
error number!
Please input a number: 5
Please input prefix:abc
abc1 created
abc2 created
abc3 created
abc4 created
abc5 created
其中 ~ 其实是对后面的正则表达式表示匹配的意思,如果匹配就输出1, 不匹配就输出0
[[ $test =~ ^[0-9]+ ]] && echo 1 || echo 0
[root@localhost code]# [[ $test =~ ^[0-9]+ ]] && echo 1 || echo 0
0
[root@localhost code]# test=0
[root@localhost code]# [[ $test =~ ^[0-9]+ ]] && echo 1 || echo 0
1
[root@localhost code]# test=a
[root@localhost code]# [[ $test =~ ^[0-9]+ ]] && echo 1 || echo 0
0
"$newip" =~ ^([0-9]{1,3}.){3}[0-9]{1,3}$ ]]
^([0-9]{1,3}.){3}[0-9]{1,3}$ ([0-9]{1,3}.)开头 连续1-3个[0-9]字符 在[[]]内{1,3}不需要转义 后面那个.是ip分隔符,重复三次,最后连续1-3个[0-9]字符结尾