for循環:
1.計算1到100的和
#!/bin/bash
sum=0
for i in `seq 1 100`
do
sum=$[$sum+$i] #核心語句做加減法
done
echo $sum
2.列出etc目錄下的所有目錄
#!/bin/bash
cd /etc/ #進入etc
for a in `ls /etc/` #for循環ls etc
do
if [ -d $a ] #判斷是否是目錄 $a
then
echo $a #顯示$a
ls $a #檢視$a
fi
done
最常見的for循環
[[email protected] shell]# for i in `seq 1 3`; do echo $i ;done
1
2
3
while循環:
文法: while 條件; do command ; done.
每隔30秒檢查系統負載,當負載達到10,發一份郵件 : 冒号 和 ture 是一樣的效果
#!/bin/bash
while true
do
load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`
if [ $load -gt 10 ]
then
/usr/local/sbin/mail.py [email protected] "load high" "$load"
#發郵件(發郵件腳本的路徑)
fi
sleep 30
#休息三十秒
done
讓使用者不斷的輸入純數字,才停止換算:
#!/bin/bash
while :
#while死循環
do
read -p "Please input a number: " n
#使用者互動,輸入一個數
if [ -z "$n" ]
#判斷n是否為空,空結束本次循環
then
echo "you need input sth."
continue
fi
n1=`echo $n|sed 's/[0-9]//g'`
#将n中非數字的部分指派給n1
if [ ! -z "$n1" ]
#判斷n1是否為空,不為空,說明不全是數字,continue結束本次循環,為空,break跳出循環
then
echo "you just only input numbers."
continue
fi
break
done
echo $n
#列印出輸入的數
break跳出循環:
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i -eq 3 ]
then
break
fi
echo $i
done
echo aaaaa
continue結束本次循環:
#!/bin/bash
for i in `seq 1 5`
do
echo $i
if [ $i -eq 3 ]
then
continue
fi
echo $i
done
echo aaaaa
exit退出整個腳本:
擴充
select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html