本文概述
在本主题中,我们将学习如何从终端和脚本中读取用户输入。
要读取Bash用户输入,我们使用称为read的内置Bash命令。它从用户处获取输入并将其分配给变量。它仅从Bash shell中读取一行。以下是其实现的语法。
句法
read <variable_name>
请按照给定的示例从Bash脚本读取用户输入:
例子1
在此示例中,我们使用read命令从Bash脚本中读取了单个变量和多个变量。
程序:
#!/bin/bash
# Read the user input
echo "Enter the user name: "
read first_name
echo "The Current User Name is $first_name"
echo
echo "Enter other users'names: "
read name1 name2 name3
echo "$name1, $name2, $name3 are the other users."
请参阅Bash控制台:
输出:
如果我们不使用read命令传递任何变量,将会发生什么?
如果我们不使用read命令传递任何变量,则可以在显示输入时传递一个名为REPLY的内置变量(应以$符号为前缀)。可以使用以下程序进行说明:
程序:
#!/bin/bash
# using read command without any variable
echo "Enter name : "
read
echo "Name : $REPLY"
在Bash控制台上:
输出:
例子2
在此示例中,我们使用-p命令行选项在同一PROMPT上输入输入,如下所示:
read -p PROMPT <variable_name>
程序:
#!/bin/bash
read -p "username:" user_var
echo "The username is: " $user_var
请参阅Bash控制台:
输出:
例子3
本示例将输入保持在静默模式,这样命令行上的任何用户输入都将对其他用户隐藏。
因此,我们通常使用命令行选项(-s,-p)来传递用户名并隐藏密码(静默模式),如下所示:
read -sp PROMPT <variable_name>
其中-s允许用户将输入保持在静默模式,-p允许用户在新的命令提示符下输入。
程序:
#!/bin/bash
read -p "username : " user_var
read -sp "password : " pass_var
echo
echo "username : " $user_var
echo "password : " $pass_var
请参阅Bash控制台:
输出:
注意:在脚本的第5行,我们用echo命令给了空白行,因为如果我们不将其空白,则它将在下图相同的PROMPT上给出带有密码和用户名的输出。
因此,通过添加空白的echo命令行来编写脚本。
示例4:此示例是使用数组输入多个输入。因此,使用-a命令行选项,如下所示:
read -a <variable_name>
其中-a帮助脚本读取数组,而variable_name引用数组。
程序:
#!/bin/bash
# Reading multiple inputs using an array
echo "Enter names : "
read -a names
echo "The entered names are : ${names[0]}, ${names[1]}."
请参阅Bash控制台上的代码:
输出:
评论前必须登录!
注册