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