read命令

read

read 是 Shell 内置命令,用来从标准输入中读取数据并赋值给变量。如果没有进行重定向,默认就是从键盘读取用户输入的数据;如果进行了重定向,那么可以从文件中读取数据。

read 命令的用法

read [-options] [variables]

options表示选项,如下表所示;variables表示用来存储数据的变量,可以有一个,也可以有多个。

options和variables都是可选的,如果没有提供变量名,那么读取的数据将存放到环境变量 REPLY 中。

Shell read 命令支持的选项

选项说明
-a array把读取的数据赋值给数组 array,从下标 0 开始。
-d delimiter用字符串 delimiter 指定读取结束的位置,而不是一个换行符(读取到的数据不包括 delimiter)。
-e在获取用户输入的时候,对功能键进行编码转换,不会直接显式功能键对应的字符。
-n num读取 num 个字符,而不是整行字符。
-p prompt显示提示信息,提示内容为 prompt。
-r原样读取(Raw mode),不把反斜杠字符解释为转义字符。
-s静默模式(Silent mode),不会在屏幕上显示输入的字符。当输入密码和其它确认信息的时候,这是很有必要的。
-t seconds设置超时时间,单位为秒。如果用户没有在指定时间内输入完成,那么 read 将会返回一个非 0 的退出状态,表示读取失败。
-u fd使用文件描述符 fd 作为输入源,而不是标准输入,类似于重定向。
实例
使用 read 命令给多个变量赋值并输出
#!/bin/bash


read -p "Enter some information > " name url age

echo "网站名字:$name"
echo "网址:$url"
echo "年龄:$age"

在这里插入图片描述

注意,必须在一行内输入所有的值,不能换行,否则只能给第一个变量赋值,后续变量都会赋值失败

只读取一个字符

使用-p选项,该选项会用一段文本来提示用户输入

-n 1表示只读取一个字符,运行脚本后,只要用户输入一个字符,立即读取结束,不用等待用户按下回车键

#!/bin/bash


read -n 1 -p "Enter a char > " char 

echo $char

在这里插入图片描述

在指定时间内输入密码

使用&&组合了多个命令,这些命令会依次执行,并且从整体上作为 if 语句的判断条件,只要其中一个命令执行失败(退出状态为非 0 值),整个判断条件就失败了,后续的命令也就没有必要执行了

#!/bin/bash


if
    read -t 20 -sp "Enter password in 20 seconds(once) > " pass1 && printf "\n" &&  #第一次输入密码
    read -t 20 -sp "Enter password in 20 seconds(again)> " pass2 && printf "\n" &&  #第二次输入密码
    [ $pass1 == $pass2 ]  #判断两次输入的密码是否相等
then
    echo "Valid password"
else
    echo "Invalid password"
fi

在这里插入图片描述

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: read命令是在Linux/Unix shell脚本中常用的命令之一,它可以读取键盘输入并将其存储在变量中。语法格式如下: read variable 在脚本运行时,read命令会暂停执行,等待用户输入,然后将用户输入的值存储在指定的变量中。例如: read name echo "Hello $name" 这段脚本会先询问用户输入名字,然后输出"Hello [用户输入的名字]" ### 回答2: read命令是在shell脚本中用于从用户输入读取数据的命令。它允许脚本暂停执行,等待用户输入,并将输入的内容赋值给变量。 使用read命令时,可以指定一个或多个变量作为参数,并用空格分隔。当脚本执行到read命令时,它将暂停执行,直到用户在终端中输入数据并按下回车键。输入的内容将被赋值给指定的变量。 例如,以下是一个简单的shell脚本示例: ```shell #!/bin/bash echo "请输入您的名字:" read name echo "您好,$name!欢迎使用该脚本。" ``` 在这个例子中,脚本会先输出提示信息"请输入您的名字:",然后执行read命令等待用户输入。用户输入后,脚本会将输入的内容赋值给变量name,并在下一行输出"您好,$name!欢迎使用该脚本。" read命令还可以用于读取多个变量。可以通过空格将多个变量名分隔开: ```shell #!/bin/bash echo "请输入您的名字和年龄:" read name age echo "您好,$name!您的年龄是$age岁。" ``` 在这个例子中,脚本会等待用户输入两个值,分别赋值给name和age变量,并输出"您好,$name!您的年龄是$age岁。" 总之,read命令是一个非常有用的shell脚本命令,用于在脚本中接收用户输入,并将输入的内容赋值给变量,以便后续处理。 ### 回答3: shell脚本中的read命令用于从标准输入读取用户输入,并将其存储到一个变量中。 read命令的基本语法为: read 变量名 当执行到read命令时,脚本会暂停运行,等待用户输入。用户输入后,按下回车键,输入的内容就会被存储到指定的变量中。 可以通过以下示例来进一步说明read命令的使用: #!/bin/bash echo "请输入您的名字:" read name echo "您好,$name!欢迎使用我们的脚本。" 在上述示例中,脚本会先输出提示信息"请输入您的名字:",然后等待用户输入。用户输入后,脚本将其存储到$name变量中,并通过echo命令输出"您好,$name!欢迎使用我们的脚本。" read命令还可以进行一些额外的设置,例如指定超时时间,设置提示符等。可以使用read的各种选项来实现这些功能。 总结来说,Shell脚本中的read命令用于从标准输入读取用户输入,并将其存储到一个变量中。它在用户交互、获取输入以及自动化脚本编写中起到了重要的作用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值