8.Shell之while循环语句和until循环语句

小破站学习笔记

while循环语句

特点:条件为真进入循环,为假退出循环

while 表达式
	do
		command...
	done

while [ 1 -eq 1 ] 或者 (( 1 > 2 ))
	do
		command...
	done

i=1
while (( $i <= 10))
	do
		echo $i
		let i+=2
	done	
  • 脚本计算1-50的偶数和
#!/bin/bash
sum=0
i=2
while [ $i -le 50 ]
	do
		let sum=$sun+$i
		let i+=2 或者 $[$i+2]
	done
echo $sum
  • 脚本同步系统时间
#!/bin/bash
NTP=10.1.1.1
count=0
while true
	do
		ntpdate $NTP &>/dev/null
		if [ $? -ne 0 ];then
			echo "system date failed" |mail -s "check system date" root@localhost
		else
			let count++
			if [ $count -eq 100 ];then
				echo "system date success" |mail -s "check system date" root@localhost && count=0
			fi
		fi
	sleep 30
	done
		
jobs
#结束后台运行的第一个程序
kill -9 %1

until循环

条件为假就进入循环,为真就退出循环

until expr [ 1 -eq 1 ] (( 1 >= 1 ))
	do
		command
	done

i=1
until [ $i -gt 5 ]
	do
		echo $i
		let i++
	done
##1 2 3 4 5	
  • 批量创建用户

stu1-stu10
前五个指定uid1001-1005
后五个指定家目录为/zss

#!/bin/bash
i=1
until [ $i -gt 10 ]
	do
		if [ $i -lt 5 ];then
			useradd -u $[1000+$i] stu$i
			echo "123" | passwd --stdin stu$i
		else
			[ ! -d /zss ] && mkdir /zss
			useradd -d /zss/stu$i stu$i
			echo "123" | passwd --stdin stu$i
		fi
	let i++
	done		

你可能感兴趣的:(Shell)