bash读取用户输入
本文概述
- 例子1
- 如果我们不使用read命令传递任何变量, 将会发生什么?
- 例子2
- 例子3
要读取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 variableecho "Enter name : "readecho "Name : $REPLY"
【bash读取用户输入】在Bash控制台上:
文章图片
输出:
文章图片
例子2在此示例中,我们使用-p命令行选项在同一PROMPT上输入输入,如下所示:
read -p PROMPT <
variable_name>
程序:
#!/bin/bashread -p "username:" user_var
echo "The username is: " $user_var
请参阅Bash控制台:
文章图片
输出:
文章图片
例子3本示例将输入保持在静默模式,这样命令行上的任何用户输入都将对其他用户隐藏。
因此,我们通常使用命令行选项(-s,-p)来传递用户名并隐藏密码(静默模式),如下所示:
read -sp PROMPT <
variable_name>
其中-s允许用户将输入保持在静默模式,-p允许用户在新的命令提示符下输入。
程序:
#!/bin/bashread -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 arrayecho "Enter names : "
read -a names
echo "The entered names are : ${names[0]}, ${names[1]}."
请参阅Bash控制台上的代码:
文章图片
输出:
文章图片
推荐阅读
- bash使用变量
- bash中的引号
- bash的注释
- bash相对与绝对路径
- hello world bash脚本
- bash的文件系统和文件权限
- bash脚本编程
- bash的特点
- bash的历史
- bash的介绍