HOWTO · Bash

Bash 中的使用者輸入

本教程將討論 Bash 中的使用者輸入。

本頁內容

接受使用者輸入對於任何程式或指令碼都非常重要。以這種方式,使用者與系統互動並向系統提供輸入。

與其他程式設計或指令碼語言一樣,Bash 支援接受使用者輸入。接受使用者輸入的一般格式是 read YOUR_VARIABLE

如果你想為使用者建立一個標籤,讓他們知道他們需要什麼樣的輸入,格式將類似於 read -p "YOUR INSTRUCTION HERE : " YOUR_VARIABLE。在本文中,我們將瞭解如何在 Bash 中將使用者輸入輸入系統。

此外,我們將看到一些與主題相關的示例和解釋,以使主題更容易。

Bash 中的使用者輸入

正如我們已經討論過的,我們需要使用關鍵字 read 將使用者輸入到系統中。它是 Bash 中的一個內建關鍵字,用於讀取使用者輸入。

在下面的示例中,我們將獲取使用者輸入並向使用者提供輸出,包括使用者輸入。我們示例的程式碼將如下所示:

read YOUR_VAR
echo "You entered the number $YOUR_VAR"

上面分享了一個非常簡單的示例,我們通過該示例獲取輸入並提供如下所示的輸出。

50
You entered the number 50

但是使用者怎麼會知道他必須在這裡提供一個數值呢?我們需要告訴使用者他需要在這裡提供一個數值。

為此,你需要遵循以下示例,該示例與上一個示例類似但有所改進。我們示例的程式碼如下所示。

read -p "Please enter a number: " YOUR_VAR
echo "You entered the number $YOUR_VAR"

當你執行此示例時,指令碼首先會顯示一條訊息請輸入一個數字:,當使用者提供一個數值時,他將獲得以下輸出。

Please enter a number: 50
You entered the number 50

從使用者那裡獲取 YESNO 輸入

下面我們將看到一個示例,該示例僅採用 YESNO 之間的使用者輸入。我們示例的程式碼將是這樣的:

while true; do
    read -p "Do you wish to continue? " yn
    case $yn in
        [Yy]* ) echo "You have selected YES!! ";;
        [Nn]* ) echo "You have selected NO!! ";;
        * ) echo "Please answer between YES or NO";;
    esac
done

我們在示例中使用了一個 while 迴圈和一個條件語句 case。我們通過 read -p "Do you want to continue the program?" yn 獲取使用者輸入。

通過 [Yy]* ) echo "You have selected YES";;[Nn]* ) echo "You have selected NO";; 我們檢查使用者輸入。

如果輸入是 Yy,它將顯示輸出 You have selected YES,如果輸入是 Nn,它將顯示輸出 You have selected NO

最後,如果使用者通過 * ) echo "請回答是或否";; 行輸入任何意外輸入,我們設定預設輸出。執行程式碼後,我們將得到如下輸出:

Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? N
You have selected NO!!

請注意,本文中使用的所有程式碼都是用 Bash 編寫的。它僅適用於 Linux Shell 環境。