1岭洲、for循環(huán)命令格式
1.1宛逗、格式一
for 變量 in 值1 值2 值3
do
程序
done
這種方法看起來好像很笨,因?yàn)樾枰岩h(huán)的值寫入到for語句中盾剩。
此種方法不僅只支持明確的值雷激,當(dāng)我們不確定循環(huán)次數(shù)的時(shí)候,也可以使用此種方式彪腔。只要是要循環(huán)遍歷的值由空格侥锦、回車、tab鍵隔開的都可以算在內(nèi)德挣,所以使用這種格式for可以和cat恭垦,ls等命令結(jié)合使用。
1.1.1格嗅、打印輸出1 2 3 4 5
創(chuàng)建shell腳本fordemo1.sh番挺,輸入內(nèi)容如下:
#!/bin/bash
# 打印輸出1 2 3 4 5
for num in 1 2 3 4 5
do
echo $num
done
給腳本fordemo1.sh賦予執(zhí)行權(quán)限,執(zhí)行命令:
chmod 755 fordemo1.sh
腳本執(zhí)行結(jié)果屯掖,如下圖所示:
1.1.2玄柏、遍歷某目錄下面的所有的shell腳本并且將其壓縮
創(chuàng)建shell腳本fordemo2.sh,輸入內(nèi)容如下:
#!/bin/bash
#遍歷某目錄下面的所有的shell腳本并且將其壓縮
cd /opt/shell
#獲取到所有的shell腳本文件贴铜,并且將結(jié)果輸出到lssh.log文件中
ls *.sh > lssh.log
for file in $(cat lssh.log)
do
tar -zcvf $file.tar.gz $file &>/dev/null
done
rm -rf /opt/shell/lssh/log
給腳本fordemo2.sh賦予執(zhí)行權(quán)限粪摘,執(zhí)行命令:
chmod 755 fordemo2.sh
命令執(zhí)行前查看/opt/shell目錄下面所有的文件瀑晒,如下所示:
執(zhí)行fordemo2.sh腳本后,再次查看目錄下面所有的文件徘意,如下所示:
1.2苔悦、格式二
for ((初始值;條件判斷式;變量變化))
do
程序
done
這種情況適用于知道循環(huán)次數(shù)。
1.2.1椎咧、計(jì)算1到100和并輸出
創(chuàng)建shell腳本文件cal1.sh玖详,文件內(nèi)容如下:
#!/bin/bash
#求1到100的和
sum=0
for (( i=1;i<=100;i=i+1 ))
do
sum=$(( $sum+$i ))
done
echo "求和結(jié)果:"$sum
給shell腳本cal1.sh賦予執(zhí)行權(quán)限后執(zhí)行,查看輸出結(jié)果勤讽。如下圖所示: