天天看點

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

繼續閱讀