Shell中的迴圈語句例項

2022-06-08 11:39:13 字數 1825 閱讀 8947

1.for迴圈語句

例項1.1 最基本的for迴圈

#!/bin/bash

for x in one two three four

doecho number $x

done

注:"for" 迴圈總是接收 "in" 語句之後的某種型別的字列表。在本例中,指定了四個英語單詞,但是字列表也可以引用磁碟上的檔案,甚至檔案萬用字元。

例項1.2

#!/bin/bash

for x in /var/log/*

do#echo "$x is a file living in /var/log"

echo $(basename $x) is a file living in /var/log

done

注:這個$x獲得的是絕對路徑檔名;可以使用 "basename" 可執行程式來除去前面的路徑資訊。如果只引用當前工作目錄中的檔案(例如,如果輸入 "for x in *"),則產生的檔案列表將沒有路徑資訊的字首。

例項1.3 對位置引數做for迴圈

#!/bin/bash

for thing in "$@"

doecho you typed $.

done

例項1.4 for迴圈中用seq產生迴圈次數

#!/bin/bash

for j in $(seq 1 5)

doecho $j

done

注:對於固定次數的迴圈,可以通過seq命令來實現,就不需要變數的自增了

2.while迴圈語句

例項2.1 迴圈輸出1到10的數字

#!/bin/bash

myvar=1

while [ $myvar -le 10 ]

doecho $myvar

myvar=$(( $myvar + 1 ))

done

注:只要特定條件為真,"while" 語句就會執行

3.until迴圈語句

例項3.1 迴圈輸出1到10的數字

"until" 語句提供了與 "while" 語句相反的功能:只要特定條件為假,它們就重複。下面是乙個與前面的 "while" 迴圈具有同等功能的 "until" 迴圈。

#!/bin/bash

myvar=1

until [ $myvar -gt 10 ]

doecho $myvar

myvar=$(( $myvar + 1 ))

done

還有一點非常重要,迴圈中難免會用到臨時變數的自增,shell中變數自增的實現方法,見我前面的乙個

linux shell中寫迴圈時,常常要用到變數的自增,現在總結一下整型變數自增的方法。

我所知道的,bash中,目前有五種方法:

1. i=`expr $i + 1`;

2. let i+=1;

3. ((i++));

4. i=$[$i+1];

5. i=$(( $i + 1 ))

可以實踐一下,簡單的例項如下:

#!/bin/bash

i=0;

while [ $i -lt 4 ];

doecho $i;

i=`expr $i + 1`;

# let i+=1;

# ((i++));

# i=$[$i+1];

# i=$(( $i + 1 ))

done

另外,對於固定次數的迴圈,可以通過seq命令來實現,就不需要變數的自增了;例項如下:

#!/bin/bash

for j in $(seq 1 5)

doecho $j

done

Shell指令碼中的迴圈語句

這裡包括for while until迴圈,以及變數自增的語法例項。一 for迴圈語句 例項1.1 最基本的for迴圈 傳統的形式,for var in 1 bin bash 2for x in one two three four3do 4echo number x 5 done 執行結果 1 r...

shell程式設計中的迴圈語句

while迴圈 直接從檔案中讀取 while read line do command done filename until迴圈 until 條件 do command done for迴圈 第一種方式 在數列中 for var in arr do command done 第二種方式和c 一樣形...

shell中的條件語句與迴圈語句

首先,說到條件語句,就不得不先說下條件表示式的判斷,那麼shell中的條件表示式都有哪幾種呢,這裡可以分為三種 等於則為真。不相等則為真。z字串 字串長度偽則為真。n字串 字串長度不偽則為真。eq 等於則為真。ne 不等於則為真。gt 大於則為真。ge 大於等於則為真。lt 小於則為真。le 小於等...