在 Bash 中實現 for 迴圈
- Bash
for迴圈 - Bash C 風格
for迴圈語法 - Bash
Foreach/For-in樣式語法 - 在 Bash
for迴圈中定義範圍和跳轉大小 - 在 Bash 提示符中製作
for迴圈並解決分號;的問題
本教程將討論編寫 Bash for 迴圈的可用 Bash 指令碼公式。
首先,我們將學習它的基本語法和概念。稍後,我們將在 Bash 指令碼中學習它的不同型別,例如 C 風格的 for 迴圈表示法和 foreach 或 for-in 風格。
最後,我們將討論分號 ; 的問題。在 bash 提示符中進行 for 迴圈時。
Bash for 迴圈
程式設計或指令碼語言中的迴圈是一種迭代控制結構,用於重複執行一個語句或一組語句,直到不滿足某個條件。
for 迴圈是一種迴圈結構,特別適用於某個語句或一組命令需要執行指定次數的情況。我們還可以在 bash 提示符和 Bash 指令碼中使用 for 迴圈。
Bash 指令碼提供了兩種用於編寫 for 迴圈的語法。第一個被稱為 C 風格或三表示式迴圈,它與 for 迴圈的 C 語言表述幾乎相同。
第二種表述是著名的 foreach 或 for-in 樣式構造,也已被許多流行的程式語言(如 PHP、Python、C#、C++11、Ruby 等)採用。
Bash C 風格 for 迴圈語法
這種風格使用 C 語言等三個表示式來指定迴圈迭代的次數。
for (( initialization; condition; increment/decrement )) do Shell command[s] done 示例:假設我們要編寫一個指令碼,可以幫助我們列印一個包含任何使用者提供的數字的表格。我們可以使用以下程式碼來做到這一點。
#!/bin/bash echo "Enter a Number: " read number for ((j=1;j<=10;j++)) do echo "$number X $j = $((number*j))" done 上面的程式碼從使用者那裡獲取一個數字並列印它的表,最多為 10。假設使用者輸入 5 作為數字,程式的輸出應為:
Enter a Number: 5 5 X 1 = 5 5 X 2 = 10 5 X 3 = 15 5 X 4 = 20 5 X 5 = 25 5 X 6 = 30 5 X 7 = 35 5 X 8 = 40 5 X 9 = 45 5 X 10 = 50 Bash Foreach/For-in 樣式語法
這種型別的 for 迴圈需要一個值/元素列表,併為列表中的每個元素執行一次迭代。該列表可以通過將每個專案分隔在一個空格中來提供,或者你可以指定一個範圍。
for Counter in 1 2 3 4 5 .. N do 1st statement 2nd statement nth statement done 示例:列印 Hello World 五次。
#!/bin/bash for c in 1 2 4 5 6 do echo "$c Hello World" done 輸出:
1 Hello World 2 Hello World 4 Hello World 5 Hello World 6 Hello World 請注意缺少的 3。由於迴圈僅針對列表中給定的專案數進行迭代,因此錯過了此數字。因此,變數 c 首先被賦予一個值 1,然後執行單次迭代。
之後,將 2 分配給 c,並執行第二次迭代。稍後,列表中的下一個值(即 4)被分配給 c,並且該過程繼續進行,直到整個列表完成。
for Item in File_0 File_1 File_N do Some Operations on Item done 或者
for Item in $(Command) do Some Operations on Item done 當命令與 for 迴圈一起使用時,Item 變數將被一個一個地分配給每個輸出標記。例如,以下指令碼將使用 for 迴圈列印當前目錄中以 f 開頭的所有檔案或資料夾。
#!/bin/bash for Item in $(ls f*) do echo "$Item" done 在 Bash for 迴圈中定義範圍和跳轉大小
如果你知道某些開始值和結束值之間沒有缺少數字。即使兩個連續值之間的差異(也稱為跳轉大小)大於 1,你也可以使用具有以下語法的 for 迴圈。
for i in {Start_Value..End_Value..Jump_Size} do Statement(s) done 示例:列印 10 到 20 之間的所有偶數將需要 Start_Value=10、End_Value=20 和 Jump_Size=2。
#!/bin/bash for evenNumber in {10..20..2} do echo "$evenNumber" done 輸出:
10 12 14 16 18 20 在 Bash 提示符中製作 for 迴圈並解決分號 ; 的問題
這 ; 用於在單行上分隔或結束命令。還有其他分隔符,例如&。
然而,當 ; 用於終止命令,只有在上一條命令執行完畢後才執行下一條命令,也稱為同步執行。
假設你想在 bash 提示符的單行上編寫一個 for 迴圈,而不使用 newline 作為語句終止符,那麼你可以使用 Bash 參考手冊 中的以下語法。
for Item [ [in [List of Items] ] ; ] do commands; done 示例:下面的程式碼等價於我們之前列印偶數的指令碼。
#!/bin/bash for even in {10..20..2} ; do echo "$even";done do 關鍵字之後。因此,在 do 後面加上 ; 會產生一個語法錯誤。三表示式或 C 型別 for 迴圈的語法如下。
for (( Initilization ; Condition ; Increment/Decrement )) ; do commands ; done 例子:
#!/bin/bash for ((i=10;i<20;i=i+2));do echo "$i"; done Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn