Bash break 如何退出迴圈


如果您是 Linux 或 Unix 使用者,那麼您可能熟悉 Bash shell。Bash 是一種流行的命令列直譯器,廣泛用於 Linux、macOS 和其他類 Unix 作業系統。它是一個功能強大的工具,可用於執行指令碼、自動化任務和使用命令列。Bash 最常見的用例之一是使用迴圈,迴圈允許您多次重複一組指令。但是,有時您可能需要在迴圈完成執行之前退出迴圈。在本文中,我們將探討如何在 Bash 中退出迴圈。

什麼是 Bash 中的迴圈?

在我們深入探討如何退出迴圈之前,讓我們首先了解 Bash 中的迴圈是什麼。迴圈是一種程式設計結構,允許您重複執行一組指令。在 Bash 中,有兩種型別的迴圈:

for 迴圈

for 迴圈用於迭代一系列值,例如數字範圍或字串列表。

while 迴圈

while 迴圈用於重複執行一組指令,只要某個條件為真。

這兩種型別的迴圈都可用於自動化任務,但如果您不小心,它們也可能導致您的指令碼陷入無限迴圈。因此,如果您需要,瞭解如何退出迴圈非常重要。

如何在 Bash 中退出迴圈?

要在 Bash 中退出迴圈,您可以使用 break 語句。break 語句是一種控制語句,允許您提前終止迴圈。當在迴圈內部遇到 break 語句時,迴圈會立即終止,程式繼續執行迴圈後面的指令。

Bash 中 break 語句的語法如下:

break

要使用 break 語句,只需將其包含在您想要退出的迴圈內部即可。以下是如何在 for 迴圈中使用 break 語句的示例:

for i in {1..10}
do
   echo $i
   if [ $i -eq 5 ]
   then
      break
   fi
done

在此示例中,我們使用 for 迴圈迭代 1 到 10 的值。在迴圈內部,我們使用 echo 命令列印變數 i 的值。我們還有一個 if 語句,它檢查 i 的值是否等於 5。如果是,則我們使用 break 語句退出迴圈。因此,當程式執行時,它將列印 1 到 5 的值,然後終止迴圈。

類似地,您可以在 while 迴圈中使用 break 語句。以下是一個示例:

i=1
while [ $i -le 10 ]
do
   echo $i
   if [ $i -eq 5 ]
   then
      break
   fi
   i=$((i+1))
done

在此示例中,我們使用 while 迴圈列印 1 到 10 的值。在迴圈內部,我們使用 echo 命令列印變數 i 的值。我們還有一個 if 語句,它檢查 i 的值是否等於 5。如果是,則我們使用 break 語句退出迴圈。因此,當程式執行時,它將列印 1 到 5 的值,然後終止迴圈。

使用 Break 語句的技巧

雖然 break 語句是退出迴圈的強大工具,但務必謹慎使用。以下是一些需要牢記的技巧:

始終在 if 語句內使用 break 語句:為了避免意外地過早退出迴圈,最好始終在檢查特定條件的 if 語句內使用 break 語句。這樣,您可以確保迴圈僅在您想要時退出。

使用描述性的變數名:在使用迴圈時,務必使用描述性的變數名,以清楚地說明迴圈正在做什麼。這可以幫助您避免混淆,並在出現問題時更容易除錯程式碼。

測試您的程式碼:在生產環境中執行程式碼之前,最好先在開發或測試環境中進行測試。這可以幫助您在它們在即時環境中造成問題之前捕獲任何錯誤或問題。

使用註釋解釋您的程式碼:為了使您的程式碼更易讀和易於理解,最好使用註釋來解釋您的程式碼正在做什麼。如果您正在處理涉及多個迴圈和條件語句的複雜指令碼,這尤其有用。

使用 Break 語句的示例

讓我們來看幾個在 Bash 中使用 break 語句的示例。

示例 1:根據使用者輸入退出迴圈

在此示例中,我們將建立一個指令碼,要求使用者輸入一個數字。然後,指令碼將使用 while 迴圈計算到該數字,但如果使用者輸入數字 0,則將退出迴圈。

#!/bin/bash

echo "Enter a number: "
read number

i=1
while [ $i -le $number ]
do
   echo $i
   if [ $i -eq 0 ]
   then
      break
   fi
   i=$((i+1))
done

echo "Done"

在此指令碼中,我們使用 read 命令提示使用者輸入一個數字。然後,我們使用 while 迴圈計算到該數字,使用 echo 命令列印變數 i 的值。我們還有一個 if 語句,它檢查 i 的值是否等於 0。如果是,則我們使用 break 語句退出迴圈。因此,如果使用者輸入 0,迴圈將終止,指令碼將在完成後列印“完成”。

示例 2:使用帶有 Break 語句的 For 迴圈

在此示例中,我們將使用 for 迴圈迭代名稱列表。當我們找到特定名稱時,我們將使用 break 語句退出迴圈。

#!/bin/bash

names=("John" "Jane" "Bob" "Sarah")

for name in ${names[@]}
do
   echo $name
   if [ $name = "Bob" ]
   then
      break
   fi
done

echo "Done"

在此指令碼中,我們使用 for 迴圈迭代 names 陣列中的值。在迴圈內部,我們使用 echo 命令列印變數 name 的值。我們還有一個 if 語句,它檢查 name 的值是否等於“Bob”。如果是,則我們使用 break 語句退出迴圈。因此,當找到名稱“Bob”時,迴圈將終止,指令碼將在完成後列印“完成”。

結論

總之,break 語句是退出 Bash 中迴圈的強大工具。透過在檢查特定條件的 if 語句內使用 break 語句,您可以確保您的指令碼僅在您想要時退出迴圈。無論您是使用 for 迴圈還是 while 迴圈,break 語句都可以幫助您自動化任務並使您的程式碼更高效。透過仔細的計劃和測試,您可以使用 break 語句建立健壯可靠的 Bash 指令碼,這些指令碼可以處理各種任務。請記住使用描述性的變數名、註釋和測試,以確保您的程式碼易於理解和維護。有了這些技巧和示例,您現在應該能夠在您自己的 Bash 指令碼中使用 break 語句來退出迴圈並改進您的工作流程。

更新於:2023-03-31

16K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告