在 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 模式的默认字符。
作者: 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