Shell中可以使用for做固定次數循環的處理。常見的for循環用法主要有以下幾種:
1、帶列表的for循環
語法結構:
for item in (list)
do
command
done
示例:
cat demo1.sh?
內容如下:
#!/bin/bash
names="小明 小王 小張"
for item in names
do
echo "${item}"
done
執行命令:bash demo1.sh
輸出結果:
小明
小王
小張
示例2 計算1到100的和
腳本1:
#!/bin/bash
sum=0
for item in {1..100}
do
let "sum+=item"
done
echo "總數為:${sum}"
腳本2:
#!/bin/bash
sum=0
for item in 'seq 1 100'
#for item in $(seq 1 100)
do
let "sum+=item"
done
echo "總數為:${sum}"
輸出結果:5050
示例3循環打印當前目錄的文件信息
#!/bin/bash
for item in $(ls)
do
ls -l $item
done
2、不帶列表的for循環
for list
do
command
done
示例:
cat demo3.sh
#!/bin/bash
for item in $list
do
echo -n $item
done
執行:bash demo3.sh 10 20 30 40
輸出結果:
10
20
30
40
3、類C語言的for循環
語法結構:
for ((exp1;exp2;exp3;))
do
command
done
用法示例:
#!/bin/bash
for ((num=1;num<=10;num++))
do
echo -n "$num "
done
計算1到100的和以及1到100的奇數和
腳本內容:
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"
執行:bash? demo4.sh
輸出:
sum1=5050
sum2=2500
注意:有時候使用for循環腳本不注意很有可能出現死循環,它會無限執行下去,會消耗大量的系統資源,所以
關于循環的腳本要多加測試,避免出現死循環的情況,如果執行的時候出現死循環可以用ctrl+c停止腳本運行。