Shell 编程6(循环语句for)

1 列表for循环

 语句用于将一组命令执行已知的次数,下面给出了for循环语句的基本格式:

                         for variable in {list}

                        do

                               command

                               command

                                …

                        done

其中do和done之间的命令称为循环体,执行次数和list列表中常数或字符串的个数相同。

当执行for循环时,首先将in后的list列表的第一个常数或字符串赋值给循环变量,然后执行循环体;接着将list列表中的第二个常数或字符串赋值给循环变量,再次执行循环体,这个过程将一直持续到list列表中无其他的常数或字符串,然后执行done命令后的命令序列。

eg

#!/bin/bash
for var in 12 3 4 
do 
 echo $var
done

eg

#!/bin/bash
for file in $(ls ..)
do 
 echo "file : $file"
done

2不带列表的for循环

执行时由用户指定参数和参数的个数,下面给出了不带列表的for循环的基本格式:

                                         for variable

                                         do

                                               command

                                               command

                                               …

                                         done

其中do和done之间的命令称为循环体,Shell会自动的将命令行键入的所有参数依次组织成列表,每次将一个命令行键入的参数显示给用户,直至所有的命令行中的参数都显示给用户。

eg

#!/bin/bash
echo "the number of the argument is $#"
for argument
 do
 echo $argument
done

运行结果

anders@anders-virtual-machine:~/code/shell/for$ ./for3.sh 1 2 3
the number of the argument is 3
1
2
3
anders@anders-virtual-machine:~/code/shell/for$ ./for3.sh hello world
the number of the argument is 2
hello
world

3 类C风格的for循环

类C风格的for循环也可被称为计次循环,一般用于循环次数已知的情况,下面给出了类C风格的for循环的语法格式:

                 for(( expr1; expr2; expr3 ))

                do

                       command

                       command

                       …

                done

  对类C风格的for循环结构的解释:

其中表达式expr1为循环变量赋初值的语句

表达式expr2决定是否进行循环的表达式,当判断expr2退出状态为0执行do和done之间的循环体,当退出状态为非0时将退出for循环执行done后的命令

表达式expr3用于改变循环变量的语句

类C风格的for循环结构中,循环体也是一个块语句,要么是单条命令,要么是多条命令,但必须包裹在do和done之间。

#!/bin/bash
for (( i=1;i<=10;i++))
do 
 echo "$i time"
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值