Bash 中的使用者輸入

MD Aminul Islam 2023年1月30日
  1. Bash 中的使用者輸入
  2. 從使用者那裡獲取 YESNO 輸入
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 環境。

作者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

相關文章 - Bash Input