Shell中可以使用for做固定次數(shù)循環(huán)的處理煤蚌。常見的for循環(huán)用法主要有以下幾種:
1孽惰、帶列表的for循環(huán)
語法結(jié)構(gòu):
for item in (list)
do
command
done
示例:
cat demo1.sh?
內(nèi)容如下:
#!/bin/bash
names="小明 小王 小張"
for item in names
do
echo "${item}"
done
執(zhí)行命令:bash demo1.sh
輸出結(jié)果:
小明
小王
小張
示例2 計算1到100的和
腳本1:
#!/bin/bash
sum=0
for item in {1..100}
do
let "sum+=item"
done
echo "總數(shù)為:${sum}"
腳本2:
#!/bin/bash
sum=0
for item in 'seq 1 100'
#for item in $(seq 1 100)
do
let "sum+=item"
done
echo "總數(shù)為:${sum}"
輸出結(jié)果:5050
示例3循環(huán)打印當(dāng)前目錄的文件信息
#!/bin/bash
for item in $(ls)
do
ls -l $item
done
2妖胀、不帶列表的for循環(huán)
for list
do
command
done
示例:
cat demo3.sh
#!/bin/bash
for item in $list
do
echo -n $item
done
執(zhí)行:bash demo3.sh 10 20 30 40
輸出結(jié)果:
10
20
30
40
3、類C語言的for循環(huán)
語法結(jié)構(gòu):
for ((exp1;exp2;exp3;))
do
command
done
用法示例:
#!/bin/bash
for ((num=1;num<=10;num++))
do
echo -n "$num "
done
計算1到100的和以及1到100的奇數(shù)和
腳本內(nèi)容:
cat demo4.sh
#!/bin/bash
sum1=0
sum2=0
for((i=1,j=1;i<=100;i++,j+=2))
do
let "sum1+=i"
if [ $j -lt 100 ];then
let "sum2+=j"
fi
done
echo "sum1=$sum1"
echo "sum2=$sum2"
執(zhí)行:bash? demo4.sh
輸出:
sum1=5050
sum2=2500
注意:有時候使用for循環(huán)腳本不注意很有可能出現(xiàn)死循環(huán)络凿,它會無限執(zhí)行下去憨攒,會消耗大量的系統(tǒng)資源,所以
關(guān)于循環(huán)的腳本要多加測試惧盹,避免出現(xiàn)死循環(huán)的情況乳幸,如果執(zhí)行的時候出現(xiàn)死循環(huán)可以用ctrl+c停止腳本運行。