📅  最后修改于: 2023-12-03 15:13:36.860000             🧑  作者: Mango
在 Bash 脚本中,经常需要等待用户按下某个键才能继续执行后续的命令。本文将介绍如何在 Bash 脚本中使用 read
命令等待用户按键,并对其进行详细讲解。
read
命令可以从标准输入中读取用户的输入,并将其赋值给一个变量。如果在 read
命令中指定了 -n
参数,那么 read
命令将在用户输入指定数量的字符后立即返回。
因此,要等待用户按下某个键,可以在 read
命令中指定 -n 1
参数。这样,read
命令将一直等待,直到用户按下一个字符为止,然后立即返回。
下面是一个例子,演示了如何使用 read
命令等待用户按下任意键:
#!/bin/bash
echo "Press any key to continue..."
read -n 1
echo "You pressed '$REPLY'"
在上面的例子中,我们使用 echo
命令输出了一条消息,提示用户按下任意键。然后,我们使用 read
命令等待用户按键,并将用户输入赋值给 $REPLY
变量。最后,我们输出了用户输入的字符。
如果用户在 read
命令等待期间输入了多个字符,只有第一个字符会被赋值给 $REPLY
变量。
有时候,我们需要让用户输入多行内容,而不是仅仅等待用户按下一个键。此时,我们不能使用 -n
参数,而是需要使用 -e
参数,以便让用户输入多行内容,并在按下 Enter
键后继续执行后续的命令。
下面是一个例子,使用 read
命令逐行等待用户输入:
#!/bin/bash
echo "Please enter some text (press 'Enter' twice to finish):"
while read line
do
if [ -z "$line" ]
then
break
fi
echo "You entered: '$line'"
done
在上面的例子中,我们使用 while
循环不断等待用户输入内容。如果用户输入了空行(即只按了一次 Enter
键),我们就跳出循环,不再等待用户输入。
如果用户输入了非空行,我们就使用 echo
命令输出用户输入的内容。需要注意的是,普通的 echo
命令无法输出输入的换行符,因此,如果用户输入了多行内容,我们只能看到最后一行的内容。
read
命令是 Bash 脚本中等待用户输入的常用命令。通过合理使用 -n
和 -e
参数,我们可以实现不同的等待用户输入的方式。