for循环语句的用法

for循环有三种结构:列表for循环,不带列表for循环和类C风格for循环。

do和done之间的命令成为循环体,执行次数和list列表中常熟或字符串的个数相同。for循环,首相是将in后list的第一个常数或字符串复制给循环变量,然后执行循环体,以此执行list,最后执行done命令后的命令序列。

shell支持列表for循环使用略写的计数方式,1~5的范围用{1..5}表示,

shell中还支持按规定的步数进行跳跃的方式实现for循环,例如计算1~100内所有的奇数

一、列表for循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash                            #!/bin/bash
for  avrible1  in {1..5}                   sum =0
do                                      for  in  {1..10..2} ;  do
echo  "hello,welcome $avrible1 times!"   echo  $i                                    
done                                      done
                                         
#!/bin/bash
for  avr  in 
二、不带列表 for 循环
#!/bin/bash
echo  "number of
arguments is $ #"
echo  "What you
input is: "
for  argument  in
"$@"
do
echo
"$argument"
done
三、类C语言 for 循环
#!/bin/bash
for  ((integer = 1;integer <=5; integer++))
do
         echo  "$integer"
done

for i in $(cat /tmp/xuexi/iplist);do ./batch.sh $i;done

4、for循环语句的嵌套使用

语法结构:

1
2
3
4
5
6
7
8
9
#!/bin/bash
for  变量1  in  <条件列表>
     do
     for  变量2  in  <条件列表>
         do
       命令2
       done
      命令1
done

关于for循环嵌套使用打印等腰三角形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
read  -p  "Please input a number:"  num
read  -p  "Please input the char:"  char
   for  ((i=1; i<=num; i++));
   do
         for  ((j=num-i; j>0; j--));
         do
                 echo  -n  ' '
         done
         for  ((h=1; h<=((2*i-1)); h++))
         do
                 echo  -n  "$char"  
         done
    echo
   done
root@node1  shift ] # ./zsj1.sh 
Please input a number:4
Please input the char:@
    @
   @@@
  @@@@@
  @@@@@@@

在上述等腰三角形的打印过程中分类应用了三个for循环分别是,1、外层for循环用于控制打印三角形的行数,内层第一个for循环用于打印空格数,第三个则是控制字符char的输出个数。三个for循环的使用将等腰三角形成功的打印出来。

注:{1..10..2}取奇数

   $#  参数

   $@  脚本输入的参数其岁$#的值的标下而变小,最小值为0




本文转自 CARYFLASH 51CTO博客,原文链接:http://blog.51cto.com/maoxiaoxiong/1840660
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值