📅  最后修改于: 2023-12-03 15:10:09.925000             🧑  作者: Mango
在Shell脚本中,我们经常需要从用户那里获取输入。本文将介绍如何在Bash Shell中捕获输入。
在Bash Shell中获取输入,可以使用read
命令。这个命令允许程序员从标准输入中读取一行。
read variable
这里variable
是一个变量,将包含从标准输入读取的字符。例如:
read name
echo "Hello ${name}"
我们输入我们的名字后,程序会输出“Hello”和我们的名字。
如果我们需要从用户那里获取多行输入,则必须使用while
循环读取每行,直到遇到EOF。在Bash Shell中,EOF表示Ctrl+d
。
while read line
do
echo "You entered: ${line}"
done
当你执行这个脚本,你可以输入多行文本,直到你按下Ctrl+d
为止。
有时候我们需要用户输入敏感信息,如密码等。我们不希望这些信息被显示在屏幕上。这时,我们可以使用read
命令的-s
选项来关闭回显。
read -s password
echo "Your password is: ${password}"
当我们在输入密码时,我们不会看到密码被打印在屏幕上。
有时候我们需要在一定时间内获取用户的输入。我们可以使用read
命令的-t
选项来实现这一点。
if read -t 5 -p "Enter your name in 5 seconds: " name
then
echo "Hello ${name}"
else
echo "Time is up!"
fi
这个脚本会尝试读取用户输入,但如果用户在5秒内没有输入,程序将会输出“Time is up!”。如果用户在5秒内输入了名字,则输出“Hello”和用户名。
在Bash Shell中,读取用户输入是一项基本的任务。read
命令使这项任务变得简单。在本文中,我们介绍了如何捕获单行和多行输入,以及如何获取不回显输入和输入超时。