Bash Goto 語句

Abid Ullah 2023年1月30日
  1. 什麼是 goto 語句
  2. Bash 中是否有 goto 語句
  3. Bash 中 goto 語句的不同替代方案
Bash Goto 語句

本文解釋了 goto 或跳轉語句及其在 Bash 中的等價物。

什麼是 goto 語句

goto 語句也稱為跳轉語句,用於在程式中從一個程式碼行跳轉到函式內的特定程式碼行。例如,從第 8 行跳轉到第 5 行執行程式。

goto 語句有時也被視為無條件跳轉。goto 語句的使用在程式設計中被認為是一種不好的做法,因為 goto 語句使程式難以理解和難以修改。

Bash 中是否有 goto 語句

沒有, Bash 中沒有 goto 語句。Bash 沒有 goto 運算子。

使用 goto 語句在程式設計中是一種不好的做法,但它對於解決 Bash 指令碼中的不同問題非常有幫助。使用 goto 語句可以幫助我們解決 Bash 指令碼中的任務。

我們在 Bash 中提出了一些不使用 goto 語句就很難解決的情況。例如,我們有一個很長的 Bash 指令碼,需要數小時或數天才能執行。

在這種情況下,我們使用 Bash 指令碼中的 goto 語句來節省時間。當我們除錯程式碼時,在 Bash 指令碼中使用 goto 語句非常有用。

Bash 中 goto 語句的不同替代方案

在 Bash 中沒有直接的等價物,但是我們可以通過不同的替代方案在 Bash 指令碼中使用 goto 語句。我們在 Bash 指令碼中使用 goto 語句,因為它有助於執行長指令碼。

在長的 Bash 指令碼中使用 goto 語句可以幫助我們節省時間。如果我們不使用 goto 語句,就很難處理長的 Bash 指令碼。

讓我們瞭解一個類似於 Bash 中的 goto 語句的 Bash 指令碼。考慮 Bash 中的以下程式碼。

#!/bin/bash
function goto
{
    label=$1
    cmd=$(sed -n "/$label:/{:a;n;p;ba};" $0 | grep -v ':$')
    eval "$cmd"
    exit
}

start=${1:-"start"}

goto $start

start:
# your script goes here...
x=100
goto bar

mid:
x=101
echo "Mid is printed"

bar:
x=${x:-10}
echo x is $x

我們通過 Vim 編輯器使用命令 vi goto.sh 建立一個 Bash 檔案,並將上面的程式碼複製貼上到檔案中。

建立 goto sh 檔案

然後我們使用命令 chmod +x goto.sh 授予檔案執行許可權。

授予 Bash 檔案執行許可權

我們使用命令 ./goto.sh 執行 Bash 檔案。

執行 Bash 檔案

輸出將給我們 x is 100。如果我們想跳轉到程式碼的中間,我們需要使用命令 ./goto.sh mid

執行 Bash 檔案的程式碼中間

輸出將給出 Mid is printx is 101。如果我們想執行程式碼欄,我們使用命令 ./goto.sh bar

執行 Bash 檔案的程式碼

在輸出中,它會給我們 x is 10。這樣,指令碼就像 goto 語句一樣工作。

作者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn