
文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载read是 Linux Shell 内置命令用于从键盘标准输入读取数据并赋值给变量是编写交互式 Shell 脚本最基础、最高频的命令之一。本手册来自 linux-command 开源仓库的 command/read.md本文在完整保留原文档全部实例的基础上补充了选项语义、常见组合用法及仓库构建流程佐证读完你可以直接写出带超时、带提示、能隐藏密码的交互式脚本。命令概述read命令从键盘读取变量的值通常用在 shell 脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值变量和输入的值都需要使用空格隔开。在read命令后面如果没有指定变量名读取的数据将被自动赋值给特定的内置变量REPLY。这意味着它不仅能实现一问一答的简单交互还能通过一次读取、按空白拆分的方式把一行输入中的多个字段分别装入多个变量相当于为脚本提供了一条轻量的输入解析通道。语法与选项语法read(选项)(参数)选项原文档明确给出的选项如下-p指定读取值时的提示符 -t指定读取值时等待的时间秒。结合原文档中的常用方式列表实际使用中还会高频遇到以下选项-a把输入的单词清单按空格拆分为数组元素存入指定数组变量 -n只读取指定数量的字符不需要按回车即可结束读取 -d用指定字符而不是换行符作为输入的结束定界符 -r允许输入包含反斜杠不把反斜杠当作转义符处理 -s静默模式输入不回显到终端常用于密码读取。参数变量指定读取值的变量名。不写变量名时读取到的整行内容会被存入内置变量REPLY写多个变量名时输入按空白符拆分后依次赋值最后一个变量会接收该行剩余的全部内容。常用方式速查下面的列表给出了read命令的常用方式均可在交互式终端或脚本中直接使用read 1987name 从标准输入读取输入并赋值给变量1987name。read first last 从标准输入读取输入到第一个空格或者回车将输入的第一个单词放到变量first中并将该行其他的输入放在变量last中。read 从标准输入读取一行并赋值给特定变量REPLY。read -a arrayname 把单词清单读入arrayname的数组里。read -p text 打印提示text等待输入并将输入存储在REPLY中。read -r line 允许输入包含反斜杠。read -t 3 指定读取等待时间为3秒。read -n 2 var 从输入中读取两个字符并存入变量var不需要按回车读取。read -d : var 用定界符:结束输入行。实战示例读取单个变量从标准输入读取输入并赋值给变量1987name# read 1987name # 等待读取输入直到回车后表示输入完毕并将输入赋值给变量answer HelloWorld # 控制台输入 HelloWorld # echo $1987name # 打印变量 HelloWorld一次读取多个变量等待一组输入每个单词之间使用空格隔开直到回车结束并分别将单词依次赋值给这三个读入变量# read one two three 1 2 3 # 在控制台输入 1 2 3它们之间用空格隔开 # echo one $one, two $two, three $three one 1, two 2, three 3这里体现了read的关键行为第一个空格前的单词进one第二个空格前的单词进two该行剩余内容这里是3全部进three。REPLY 内置变量示例# read # 等待控制台输入并将结果赋值给特定内置变量REPLY This is REPLY # 在控制台输入该行 # echo $REPLY # 打印输出特定内置变量REPLY以确认是否被正确赋值 This is REPLY当read后面不跟任何变量名时整行输入原样存入REPLY适合只需要取一整行而无需拆分的场景。-p 提示符示例# read -p Enter your name: # 输出文本提示同时等待输入并将结果赋值给REPLY Enter you name: stephen # 在提示文本之后输入 stephen # echo $REPLY stephen-p让提示与读取合二为一避免了先echo提示、再read输入的两步写法。-a 数组读取示例等待控制台输入并将输入信息视为数组赋值给数组变量friends输入信息用空格隔开数组的每个元素# read -a friends Tim Tom Helen # echo They are ${friends[0]}, ${friends[1]} and ${friends[2]}. They are Tim, Tom and Helen.注意访问数组元素时要使用${数组名[下标]}的形式下标从 0 开始。终端输入密码不回显补充一个终端输入密码时不让密码显示出来的例子。方法 1使用 -s 选项#!/bin/bash read -p 输入密码 -s pwd echo echo password read, is $pwd-s让输入内容不回显在终端上配合-p即可在一条命令内完成提示 隐藏输入由于不回显输入换行后需要手动echo补一个空行避免后续输出紧贴在输入行上。方法 2使用 stty 控制终端回显#!/bin/bash stty -echo read -p 输入密码 pwd stty echo echo echo 输入完毕。其中选项-echo禁止将输出发送到终端而选项echo则允许发送输出。这种方法通过stty直接控制终端回显属性读取完成后必须用stty echo恢复否则后续命令的所有输出都会看不见。多变量读取并输出使用read命令从键盘读取变量值并且将值赋给指定的变量输入如下命令read v1 v3 # 读取变量值执行上面的指令以后要求键入两个数据如下所示Linux c # 输入数据完成之后可以使用echo命令将指定的变量值输出查看输入如下命令echo $v1 $v3 # 输出变量的值执行输出变量值的命令以后将显示用户所输入的数据值如下所示Linux c # 输出变量值注意使用echo命令输出变量值时必须在变量名前添加符号$。否则echo将直接输出变量名。与 echo 配合的输出规范read读入、echo输出是交互脚本中最常见的一对组合。关于echo的更多转义、换行行为可以查阅仓库中的 command/echo.md其同样收录于本仓库的 Linux 命令手册体系内。仓库中的定位与构建佐证本手册所在的 command/read.md 是 linux-command 仓库command目录下 600 多个 Linux 命令文档之一command目录中的每一个 Markdown 文件都是一份独立的命令手册可直接用于检索、学习或被程序化消费。从仓库的构建脚本 scripts/build.mjs 可以确认这套文档的完整数据链路readMarkdownPathsscripts/build.mjs扫描command目录下所有.md文件createDataJSONscripts/build.mjs解析每个文档首部的标题如read与描述行生成命令名称、命令路径和命令描述三项 JSON 索引数据createTmpToHTML配合 EJS 模板 template/details.ejs 将 Markdown 渲染为可搜索的静态 HTML 详情页。也就是说本文讲解的read手册既可以通过 README.md 中描述的 Web 版站点搜索查阅也可以直接阅读command/read.md源文件甚至通过 npm 包按命令名取用对应的 Markdown 文本例如在 Node.js 中加载linux-command/command/read.md得到本文的原始内容。小结read命令的实用价值体现在三个层次单变量读取满足最基本的交互需求多变量拆分省去了手工解析输入字符串的麻烦而-p、-t、-n、-d、-a、-s、-r等选项的组合则覆盖了提示输入、超时控制、定长读取、自定义定界符、数组接收、密码隐藏、保留反斜杠等几乎全部脚本交互场景。掌握这些用法就能写出健壮且友好的 Shell 交互程序。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐fish-shell read 内置命令完全指南从标准输入读取变量、交互输入与分词控制fish shell read 内置命令完全指南从标准输入读取变量、交互输入与分词控制 read 是 fish shell 内置命令用于从标准输入读取一行或CLI开发工具在 Bash 中读取用户输入从 read 到 read -p 的交互式脚本实战Introduction to Bash Scripting在 Bash 中读取用户输入从 read 到 read p 的交互式脚本实战Introduction to Bash Scripting 导读 本文基于开文档教程Introduction to Bash Scripting 教程用 read 命令实现 Bash 用户输入交互Introduction to Bash Scripting 教程用 read 命令实现 Bash 用户输入交互 本篇技术指南聚焦于开源电子书《Introdu文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考