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控制台:
bash读取用户输入

文章图片
输出:
bash读取用户输入

文章图片
如果我们不使用read命令传递任何变量,将会发生什么?如果我们不使用read命令传递任何变量,则可以在显示输入时传递一个名为REPLY的内置变量(应以$符号为前缀)。可以使用以下程序进行说明:
程序:
#!/bin/bash# using read command without any variableecho "Enter name : "readecho "Name : $REPLY"

【bash读取用户输入】在Bash控制台上:
bash读取用户输入

文章图片
输出:
bash读取用户输入

文章图片
例子2在此示例中,我们使用-p命令行选项在同一PROMPT上输入输入,如下所示:
read -p PROMPT < variable_name>

程序:
#!/bin/bashread -p "username:" user_var echo "The username is: " $user_var

请参阅Bash控制台:
bash读取用户输入

文章图片
输出:
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控制台:
bash读取用户输入

文章图片
输出:
bash读取用户输入

文章图片
注意:在脚本的第5行,我们用echo命令给了空白行,因为如果我们不将其空白,则它将在下图相同的PROMPT上给出带有密码和用户名的输出。
bash读取用户输入

文章图片
因此,通过添加空白的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读取用户输入

文章图片

    推荐阅读