天天看点

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循环

<code>#!/bin/bash                            #!/bin/bash</code>

<code>for</code> <code>avrible1 </code><code>in</code><code>{1..5}                  </code><code>sum</code><code>=0</code>

<code>do</code>                                     <code>for</code> <code>i </code><code>in</code> <code>{1..10..2} ; </code><code>do</code>

<code>echo</code> <code>"hello,welcome $avrible1 times!"</code>  <code>echo</code> <code>$i                                    </code>

<code>done</code>                                     <code>done</code>

<code>                                        </code> 

<code>#!/bin/bash</code>

<code>for</code> <code>avr </code><code>in</code> 

<code>二、不带列表</code><code>for</code><code>循环</code>

<code>echo</code> <code>"number of</code>

<code>arguments is $</code><code>#"</code>

<code>echo</code> <code>"What you</code>

<code>input is: "</code>

<code>for</code> <code>argument </code><code>in</code>

<code>"$@"</code>

<code>do</code>

<code>echo</code>

<code>"$argument"</code>

<code>done</code>

<code>三、类C语言</code><code>for</code><code>循环</code>

<code>for</code> <code>((integer = 1;integer &lt;=5; integer++))</code>

<code>        </code><code>echo</code> <code>"$integer"</code>

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

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

语法结构:

<code>#!/bin/bash</code>

<code>for</code> <code>变量1 </code><code>in</code> <code>&lt;条件列表&gt;</code>

<code>    </code><code>do</code>

<code>    </code><code>for</code> <code>变量2 </code><code>in</code> <code>&lt;条件列表&gt;</code>

<code>        </code><code>do</code>

<code>      </code><code>命令2</code>

<code>      </code><code>done</code>

<code>     </code><code>命令1</code>

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

<code>#!/bin/sh</code>

<code>read</code> <code>-p </code><code>"Please input a number:"</code> <code>num</code>

<code>read</code> <code>-p </code><code>"Please input the char:"</code> <code>char</code>

<code>  </code><code>for</code> <code>((i=1; i&lt;=num; i++));</code>

<code>  </code><code>do</code>

<code>        </code><code>for</code> <code>((j=num-i; j&gt;0; j--));</code>

<code>                </code><code>echo</code> <code>-n </code><code>' '</code>

<code>        </code><code>done</code>

<code>        </code><code>for</code> <code>((h=1; h&lt;=((2*i-1)); h++))</code>

<code>                </code><code>echo</code> <code>-n </code><code>"$char"</code>  

<code>   </code><code>echo</code>

<code>  </code><code>done</code>

<code>root@node1 </code><code>shift</code><code>]</code><code># ./zsj1.sh </code>

<code>Please input a number:4</code>

<code>Please input the char:@</code>

<code>   </code><code>@</code>

<code>  </code><code>@@@</code>

<code> </code><code>@@@@@</code>

<code> </code><code>@@@@@@@</code>

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

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

   $#  参数

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

本文转自 CARYFLASH 51CTO博客,原文链接:http://blog.51cto.com/maoxiaoxiong/1840660

继续阅读