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停止脚本运行。