1. 程式人生 > >謝煙客---------Linux之腳本編程---for及while應用

謝煙客---------Linux之腳本編程---for及while應用

linux

過程式編程

選擇執行

順序執行: if, case

循環執行: for, while, until


for循環列表

for i in LIST; do
    循環體
done

for i in LIST
do
    循環體
done

技術分享


while循環

while CONDITION; do
    循環體
done

while CONDITION
do
    循環體
done

CONDITION 循環控制條件,每執行一次循環體,需要再次進行判斷 
   true時,執行一次循環
   false時,退出循環

練習:100以內所有正整數之和

練習: 100以內所有偶數和

練習:添加10個用戶

練習:通過ping命令探測172.16.250.1-254範圍內的所有主機的在線狀態.用while循環

練習:打印9x9乘法表

練習:利用RANDOM生成10個隨機數,輸出這10個數字,並顯示其中最大者和最小者


練習:100以內所有正整數之和

#!/bin/bash
#
declare -i sum=0
for i in {1..100}; do
	let sum=$sum+1
done
echo $i
echo "summary: $sum"
#!/bin/bash
#
declare -i sum=0
declare -i i=1
while [ $i -le 100 ]; do
	sum=$[$sum+$i]
	let i++
done

echo $i
echo "summary: $sum"

練習: 100以內所有偶數和

#!/bin/bash
#
declare -i sum=0
declare -i i=2
while [ $i -le 100 ]; do
	sum=$[$sum+$i]
	let i+=2
done

echo $i
echo "summary: $sum"	

練習:添加10個用戶user1-user10

#!/bin/bash
#
declare -i i=1
declare -i users=0
while [ $i -le 10 ]; do
	id user$i &> /dev/null
	retval=$?
	[ $retval -ne 0 ] && useradd user$i &> /dev/null
	[ $? -eq 0 ] && echo "Add user user$i finished" && let users=$users+1
done

echo "Add $users users"

練習:通過ping命令探測172.16.250.1-254範圍內的所有主機的在線狀態.用while循環

#!/bin/bash
#
declare -i IP=‘172.16.250.‘
declare -i i=1
declare -i uphosts=0
declare -i downhosts=0
while [ $i -le 254 ]; do
	if ping -c 1 -w 1  $IP$i &> /dev/null; then
		echo "$IP$i is up"
		let uphosts++
	else
		echo "$IP$i is down"
		let downhosts++
	fi
done

echo "uphosts: $uphosts"
echo "downhosts: $downhosts"

練習:打印9x9乘法表

#!/bin/bash
#
for i in {1..9}; do
	for j in $(seq 1 1 $i); do
		echo -ne "${j}X${i}=$[$i*$j]\t"
		j=$(($j+1))
	done
	echo
done
#!/bin/bash
#
declare -i i=1
while [ $i -le 9 ]; do
	declare -i j=1
	while [ $j -le $i ]; do
		echo -ne "${j}X${i}=$[$i*$j]\t"
		j=$(($j+1))
	done
	echo
	i=$(expr $i + 1)
done	

練習:利用RANDOM生成10個隨機數,輸出這10個數字,並顯示其中最大者和最小者

#!/bin/bash
#
declare -i max=
declare -i min=
declare -i i=1
declare -i random
while [ $i -le 10 ]; do
	random=$RANDOM
	echo $random

	if [ $i -eq 1 ]; then
		max=$random	
		min=$max
	fi

	if [ $i -gt 1 ]; then
		if [ $random -gt $max ]; then
			max=$random
		fi
		if [ $random -lt $min ]; then
			min=$random
		fi
	fi
	let i++
done

echo "max: $max"
echo "min: $min"
==========================================
#!/bin/bash
#
declare -i max=
declare -i min=
declare -i i=1
declare -i random
while [ $i -le 10 ]; do
	random=$RANDOM
	echo $random

	if [ $i -eq 1 ]; then
		max=$random	
		min=$max
	fi

	if [ $random -gt $max ]; then
		max=$random
	fi
	if [ $random -lt $min ]; then
		min=$random
	fi
	let i++
done

echo "max: $max"
echo "min: $min"


本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1964037

謝煙客---------Linux之腳本編程---for及while應用