1. 程式人生 > >Linux for迴圈之列表for迴圈

Linux for迴圈之列表for迴圈

for迴圈是Linux shell 中最常用的結構。for 迴圈有三種結構:一種結構是列表for迴圈;第二種結構是不帶列表for迴圈;第三種結構是類C風格的for迴圈。

本篇博文重點看列表for迴圈,列表for迴圈大的格式固定,在列表構成上分多種情景,如數字列表、字串列表、命令列表、指令碼傳參列表等,下面一一來看。

列表for迴圈語句用於將一組命令執行已知的次數,語句基本格式如下

for variable in (list)
do 
    command
    command
    ...
done
其中,do 和 done之間的命令成為迴圈體,執行次數和list列表中常數或字串的個數相同。當執行for迴圈時,首先將in 後 list 列表的第一個常數或字串賦給迴圈變數,然後執行迴圈體;接著將list 列表中的第二個常數或字串賦值給迴圈變數,再次執行迴圈體。這個過程將一直持續到list 列表中無其它常數或字串,然後執行done命令後的命令序列。

ex1,列表for迴圈中list 列表為常數的情況

#!/bin/bash

#使用列表for迴圈顯示5次歡迎操作
for variable  in 1 2 3 4 5 
do
    echo "Hello, welcome $variable  times "
done

這種示例的迴圈經常用於計數,範圍被限定在1~5之間。如下是指令碼執行結果,由於in 後面列表列出了5個引數,可以看出指令碼執行5次歡迎操作。
[[email protected] shellscript]$ sh for_ex1.sh 
Hello, welcome 1  times 
Hello, welcome 2  times 
Hello, welcome 3  times 
Hello, welcome 4  times 
Hello, welcome 5  times 
[
[email protected]
shellscript]$

Linux shell中支援列表for 迴圈中使用略寫的計數方式,我們將指令碼略作改進

ex2,列表為略寫形式

#!/bin/bash

#使用列表for迴圈顯示5次歡迎操作
for variable  in {1..5} 
do
    echo "Hello, welcome $variable  times "
done

執行後,結果同指令碼1相同
[[email protected] shellscript]$ sh for_ex2.sh 
Hello, welcome 1  times 
Hello, welcome 2  times 
Hello, welcome 3  times 
Hello, welcome 4  times 
Hello, welcome 5  times 
[
[email protected]
shellscript]$

上面示例種,我們將1~5進行略寫,使其可以正常的與示例1輸出相同的結果

ex3,列表為簡寫形式

#!/bin/bash

#使用列表for迴圈顯示5次歡迎操作
for variable  in $(seq 1 5) 
do
    echo "Hello, welcome $variable  times "
done

seq 命令是Linux預設的外部命令,一般用於一堆數字的簡化寫法,可以參考linux常用命令之seq

執行後,結果同上面相同,就不重複貼出來了。

ex4,按步數跳躍方式實現列表

#!/bin/bash

#使用列表for迴圈顯示5次歡迎操作
for variable  in {1..5..2} 
do
    echo "Hello, welcome $variable  times "
done

in {1..5..2}  實現1~5之內的數字,按照步數2進行跳躍

執行下,看下結果

[[email protected] shellscript]$ sh for_ex4.sh 
Hello, welcome 1  times 
Hello, welcome 3  times 
Hello, welcome 5  times 
[[email protected] shellscript]$ 

ex5、跳躍方式用seq表達

[[email protected] shellscript]$ cat for_ex5.sh 
#!/bin/bash

#使用列表for迴圈顯示5次歡迎操作
for variable  in $(seq 1 2 5) 
do
    echo "Hello, welcome $variable  times "
done

[[email protected] shellscript]$ sh for_ex5.sh 
Hello, welcome 1  times 
Hello, welcome 3  times 
Hello, welcome 5  times 
[[email protected] shellscript]$ 

ex6、用字串表示列表

[[email protected] shellscript]$ cat for_ex6.sh 
#!/bin/bash

#使用列表for迴圈顯示週一到週日對應的英文
for day in Monday Tuesday Wednesday Thursday Friday Saturday Sunday 
do
    echo "$day"
done

[[email protected] shellscript]$ sh for_ex6.sh 
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
[[email protected] shellscript]$ 

ex7、使用命令表示列表
[[email protected] shellscript]$ cat for_ex7.sh 
#!/bin/bash

#使用命令列印陣列
for variable  in `ls /` 
do
    echo "Every directory is $variable "
done

[[email protected] shellscript]$ sh for_ex7.sh 
Every directory is bin 
Every directory is boot 
Every directory is dev 
Every directory is etc 
Every directory is home 
Every directory is lib 
Every directory is lost+found 
Every directory is media 
Every directory is mnt 
Every directory is opt 
Every directory is proc 
Every directory is root 
Every directory is sbin 
Every directory is selinux 
Every directory is srv 
Every directory is sys 
Every directory is tmp 
Every directory is usr 
Every directory is var 
[[email protected] shellscript]$ 

這裡的命令格式可以使用 $( command) 或 `command`,效果相同,這裡就不再做展示了。

ex8、通過指令碼傳參實現裡列表

[[email protected] shellscript]$ cat for_ex8.sh 
#!/bin/bash

echo "number of arguments is $#"

echo "What you input is :"

#使用命令列印陣列
for argument  in "$*" 
do
    echo "$argument "
done

[[email protected] shellscript]$ sh for_ex8.sh 1 hello shell
number of arguments is 3
What you input is :
1 hello shell 
[[email protected] shellscript]$ 

可以看出,引數列表可以是數字,也可以是字串,但是輸入是以空格進行分隔的,如果存在空格,指令碼執行時會認為存在另一個引數。



相關推薦

Linux for迴圈列表for迴圈

for迴圈是Linux shell 中最常用的結構。for 迴圈有三種結構:一種結構是列表for迴圈;第二種結構是不帶列表for迴圈;第三種結構是類C風格的for迴圈。 本篇博文重點看列表for迴圈,列表for迴圈大的格式固定,在列表構成上分多種情景,如數字列表、字串列表、

Linux for迴圈不帶列表for迴圈

for迴圈是Linux shell 中最常用的結構。for 迴圈有三種結構:一種結構是列表for迴圈;第二種結構是不帶列表for迴圈;第三種結構是類C風格的for迴圈。上篇博文講解了列表for迴圈,本篇博文重點看不帶列表for迴圈。不帶列表for迴圈執行時,由使用者指定

linux學習筆記shell程式設計(三)流程控制(3)---for迴圈

for迴圈 語法格式1:指定迴圈範圍 for 變數 in value1 value2... do something done 指令碼例項1 #!/bin/bash for i in 1 2

Linux Shell系列教程(十三)Shell for迴圈

13.1、Shell for迴圈語法 for 變數 in 列表 do command1 command2 ... commandN done **也可以寫成:for var in list; do - 13.1.1、讀取

Linux Shell程式設計 for迴圈語句 if條件語句

    最近涉及Linux Shell程式設計,還不太熟悉,對於賦值語句,數值計算,迴圈語句,變數使用都不太熟悉。我不打算一個一個的說明知識點,我打算用最多3個例子說明所有的這些知識點。 Example 1 : <span style="font-size:14px;

小猿圈python一個for迴圈裡對多個列表進行迭代

for迴圈在平時工作中經常會用到,有時候會是好多層迴圈才能達到目的,怎麼多層迴圈才會實現這個功能並保持程式碼的優雅呢?今天小猿圈詳

JS中for迴圈斐波拉切數列-兔子問題

兔子問題: 有個人想知道,一年之內一對兔子能繁殖多少對?於是就築了一道圍牆把一對兔子關在裡面。已知一對兔子每個月可以生一對小兔子,而一對兔子從出生後第3個月起每月生一對小兔子。假如一年內沒有發生死亡現象,那麼,一對兔子一年內(12個月)能繁殖成多少對?(兔子的規律為數列,1,1,2,3,5,8,

Oracle中PL/SQL while、for、loop 三種迴圈方式的使用

PL/SQL  while、for、loop 三種迴圈方式的使用 1、WHILE ... LOOP ... END LOOP 語法: WHILE 條件 LOOP 語句; END LOOP; 例子:輸出1到5的數字 declare num number :

python迴圈for迴圈

python還有個迴圈是for迴圈。 for迴圈一般用於遍歷元組、集合、列表這種資料型別裡面的所有元素。(字典只會遍歷索引) #簡單的for迴圈結構(不同於while迴圈容易變成無限迴圈,for迴圈遍歷完或中止便會結束執行)# a = ('ppap','hello,world','pho

C三種常用迴圈:while迴圈、do...while迴圈for迴圈

**《戰國策·燕策二》:“此必令其言如迴圈,用兵如刺蜚繡。”往復迴旋。指事物周而復始地運動或變化。意思是轉了一圈又一圈,一次又一次地循回。**迴圈 ,是C語言程式設計裡非常重要的結構。使用迴圈,可以幫我們快速解決類似的、需要重複實現、處理的問題。以下分享學習C語言三種常見迴圈:while迴圈

Python基礎(linux下)---迴圈語句while,for和字串

for 迴圈的語法: #for 變數 in range(10): 迴圈需要執行的程式碼 #else: 迴圈結束時需要執行的程式碼 #1+2+3+…+100= c語言或者java: sum = 0 for(int i=1;i<=100;i++): sum = sum +

003-小白學python-for迴圈/字串/列表

目錄 for迴圈/字串/列表 1for定義 意義 for與break for-else懸掛 break 字串 建立字串,空格也算是一個字元 下標訪問字串字元 切片, 字串操作 查詢

《笨方法學 Python 3》32. for 迴圈列表

        我們在開始使用 for 迴圈前,你需要在某個位置存放迴圈的結果。最好的方法就是使用列表(list),顧名思義,它就是一個從頭到尾按順序存放東西的容器。         首先我們看看如何建立列表: hairs = ['brown', 'blond', 're

Java語句順序結構&選擇結構(if、switch)&迴圈結構(for、while)

Java中,語句分為三大類,順序結構,選擇結構(if語句、switch語句),迴圈結構(for語句、while語句)。 一、順序結構 就是按照輸出語句來 例: System.out.printl

Scala迴圈for、foreach

前一節我們簡單說明了scala中的while的迴圈,現在說說scala中的foreach遍歷。 scala中的for和foreach和java中的一樣的。現在我們簡單實用一下: 1.建立一個scala的指令碼,例如:scala-for-foreach.scala,指令碼中的程式碼如下:

oracle 學習for迴圈中包涵select語句

      oracle中的for迴圈用法比較簡單,但是在一次用到包涵select語句的for迴圈時,還是發現了一些自己以前沒有注意的東西。       我的程式碼如下: declare val1 date;val2 date;begin   for i in (select

shell淺談for、while、until迴圈

一、簡介 Shell程式設計中迴圈命令用於特定條件下決定某些語句重複執行的控制方式,有三種常用的迴圈語句:for、while和until。while迴圈和for迴圈屬於“當型迴圈”,而until屬於“直到型迴圈”。迴圈控制符:break和continue控制流程轉向。

豬豬的IT路---Java成長路day04(do...while,for,迴圈使用關鍵字,迴圈巢狀)

迴圈: While(迴圈條件){ 迴圈體; } 迴圈條件為true時迴圈或重複執行迴圈體,直到迴圈條件為false迴圈結束 注意: 1.迴圈開始條件一般要定義在迴圈結構前面 2.迴圈操作(迴圈體)中一般都應該存在步進操作(++或–) do…while迴圈語句 do…while迴圈語句和whi

深入瞭解JavaScript 中的For迴圈詳解

轉載地址:https://segmentfault.com/a/1190000017569850 尊重原創 正文: ​ 在程式碼示例中我會用到es6中的語言,如果你還不是很瞭解,你可以看看阮老師的es6.(= =我也是一點一點跟著看的。) 1.map ​ 先說一下最常用的map.利用ma

Python:for迴圈應用-Routine4

For迴圈的結構:首先是一個for,然後是一個可以用於存放各個元素的變數,經常用i,j,k表示計數器變數,接下來是in,然後是要遍歷的序列,然後是一個冒號,最後是另起一行加Tab製表符的迴圈體。for迴圈會按順序為序列中的每個元素執行一次迴圈體,當到達序列的末尾