shell腳本之for循環

shell常用for循環寫法

方式一:使用外部賦值實現

#!/bin/bash
sum=0
for i in {1..50}
do
let "sum+=i"
done
echo $sum

注:以上腳本實現計算從1加到50的總和!

方式二:使用for單循環實現

#!/bin/bash
for name in cat namelist
do
echo "$name"
done
echo "循環結束"

注:以上腳本實現打印列表中名字,打印完循環結束!

方式三:使用內嵌if多分支語句實現

#!/bin/bash
for ip in 192.168.152.{1..254}
do
ping -c 2 -i 0.1 -W 1 $ip &> /dev/null
if [ $? -eq 0 ]
then
echo "$ip is up !"
else
echo "$ip is down !"
fi
done

注:以上腳本實現批量測試哪個IP地址不通(-c 2 是ping兩個包,-i 0.1 是指ping通第一個包到ping第二個包的時間間隔是0.1秒, -W 1 是指如果ping不通,等待的時間間隔是1秒)

方式四:使用for循環內嵌for循環實現

#!/bin/bash
for month in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
do
for week in 1 2 3 4
do
echo "this week is in $month of $week week !"
done
done

注:以上腳本實現循環打印每個月的每週!

方式五:使用for循環內嵌if單分支實現

#!/bin/bash
for file in *.sh
do
if [ -f $file -a ! -x $file ]
then
chmod +x $file
echo "$file is have Permission !"
fi
done

注:以上腳本檢查當前路徑的腳本是否有執行權限,無權限的給予執行權限!(切記所有腳本都得和當前腳本在同一路徑,否則需要根據實際情況修改for file in *.sh這句)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章