Linux中Shell循环结构for用法笔记

4418040-08d7eb5624e03b61

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

原文地址:https://www.cnblogs.com/hgmyz/p/12351143.html