码迷,mamicode.com
首页 > 其他好文 > 详细

while

时间:2020-03-24 21:39:10      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:$1   效果   head   次数   批量添加用户   批量创建用户   for循环   指定   lse   

while基础

for循环可以指定次数,而while通常是无限的,只要条件为真就会一直向下执行。

i=0
while [ $i -lt 10 ]
do
        echo 123
        let i++
done


执行效果
[[email protected] tmp]# /bin/bash 1.sh
123
123
123
123
123
123
123
123
123
123
i=0
while [ $i -le 5 ]
do
	echo $i
	let i++
done
[[email protected] tmp]# /bin/bash 2.sh
0
1
2
3
4
5
i=5
while [ $i -ge 1 ]
do
	echo $i
	let i--
done
[[email protected] tmp]# /bin/bash 2.sh
5
4
3
2
1
a=1
b=10
while [ $a -le 10 ]
do
	echo $a $b
	let a++
	let b--
done
[[email protected] tmp]# /bin/bash 2.sh
1 10
2 9
3 8
4 7
5 6
6 5
7 4
8 3
9 2
10 1
a=1
b=10
while [ $a -le 10 ]
do
	sum=$(($a+$b))
	echo $a+$b=$sum
	let a++
	let b--
done
[[email protected] tmp]# /bin/bash 2.sh
1+10=11
2+9=11
3+8=11
4+7=11
5+6=11
6+5=11
7+4=11
8+3=11
9+2=11
10+1=11
a=1
b=10
while [ $a -le 10 ]
do
	sum=$(( $a-$b ))
	echo $a-$b=$sum
	let a++
	let b--
done
[[email protected] tmp]# /bin/bash 2.sh
1-10=-9
2-9=-7
3-8=-5
4-7=-3
5-6=-1
6-5=1
7-4=3
8-3=5
9-2=7
10-1=9

取行-批量添加用户

for是按照空格取值,而while是按行取值

示例1:用while循环批量创建用户

[[email protected] tmp]# cat user.txt 
user1
user2
user3
[[email protected] tmp]# cat 3.sh  
while read line     #read是命令,line是变量,一行就是一个变量
do
	id $line &> /dev/null
	if [ $? -eq 0 ];then
		echo "用户已经存在!"
	else
		useradd $line &> /dev/null && echo "用户增加成功"
	fi
done < /tmp/user.txt
[[email protected] tmp]# /bin/bash 3.sh
用户已经存在!
用户已经存在!
用户已经存在!

示例2:批量添加用户并指定密码

[[email protected] tmp]# cat user.txt 
user1 123
user2 121
user3 321
[email protected] tmp]# cat 3.sh 
while read line
do
	user=$(echo $line|awk ‘{print $1}‘)
	pass=$(echo $line|awk ‘{print $2}‘)
	id $user &> /dev/null
	if [ $? -eq 0 ];then
		echo "$user用户已经存在!"
	else
		useradd $user &> /dev/null && echo "$user用户增加成功"
		echo $pass | passwd --stdin $user &>/dev/null
	fi
done < /tmp/user.txt
[[email protected] tmp]# /bin/bash 3.sh
user4用户已经存在!
user5用户已经存在!
user6用户已经存在!

示例3:批量添加用户,用随机密码

while

标签:$1   效果   head   次数   批量添加用户   批量创建用户   for循环   指定   lse   

原文地址:https://www.cnblogs.com/yizhangheka/p/12562189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!