个性化阅读
专注于IT技术分析

bash读取用户输入

本文概述

在本主题中,我们将学习如何从终端和脚本中读取用户输入。

要读取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控制台上的代码:

输出:


赞(0)
未经允许不得转载:srcmini » bash读取用户输入

评论 抢沙发

评论前必须登录!