在 Linux Bash 中暫停程式執行

Yahya Irmak 2022年5月11日
在 Linux Bash 中暫停程式執行

你有時可能希望暫停程式在 bash 指令碼中執行。這可能是因為從使用者那裡獲得輸入或要求他們確認案例。

在 DOS 中,你可以使用 pause 命令執行此操作。本文將解釋如何使用 read 命令暫停程式的執行。

在 Bash 中使用 read 命令暫停程式執行

read 命令使程式暫停,直到收到使用者的輸入或一段時間。在本文的其餘部分,我們將解釋該命令的引數並舉例說明其不同用途。

以下示例從使用者那裡獲取一個字元以繼續執行。

read -n1 -rp "Press any key to continue: " key
  • -n 引數指定要作為輸入的字元數。在本例中,它設定為 1。
  • -r 引數指定輸入將處於原始模式。不允許使用轉義字元。
  • -p 引數建立一個提示。如果與 $' ' 一起使用,它允許在要列印的文字中轉義字元。與雙引號一起使用時,它以純文字形式列印。
  • key 是任何變數。它儲存作為輸入給出的字元。

在下面的示例中,使用者可以按 Enter 鍵繼續。他們不必使用字元。

此外,在示例中,$' ' 字元與 -p 引數一起使用。它允許將\n 字元用作換行符。

read -rsp $'Press enter to continue\n'
  • -s 引數用於靜默模式。從鍵盤獲取的字元不會反映在螢幕上。

在下一個示例中,使用者必須在 3 秒內按下一個鍵,否則程式將繼續執行。

read -t3 -n1 -rp "Press [x] to exit in 3 seconds " key
  • -t 引數以秒為單位指定超時。在本例中,它設定為 3 秒。

在上一個示例中,字母 N 預設列印到螢幕上。

read -rp "Do you want to exit? (y/N) : " -ei "N" key;
  • -e 引數用於切換到 readline 模式。
  • -i "N" 引數指定 readline 模式的預設字元。
Author: Yahya Irmak
Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn