介绍linux中read的用法

1、基本读取

read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是 read命令

的最简单形式::

#!/bin/bashecho -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行read  name                   //从键盘输入echo "hello $name,welcome to my program"     //显示信息exit 0                       //退出shell程序。//********************************

由于read命令提供了-p参数,允许在read命令行中直接指定一个提示。

所以上面的脚本可以简写成下面的脚本::

#!/bin/bashread -p "Enter your name:" nameecho "hello $name, welcome to my program"exit 0

在上面read后面的变量只有name一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数 据个数过多,则最后所有的值都给第一个变量。如果太少输入不会结束。

//*****************************************

在read命令行中也可以不指定变量.如果不指定变量,那么read命令会将接收到的数据放置在环境变量REPLY中。

例如::

read -p “Enter a number”

环境变量REPLY中包含输入的所有数据,可以像使用其他变量一样在shell脚本中使用环境变量REPLY.

2、计时输入.

使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个 计时器。

-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;

#!/bin/bashif read -t 5 -p "please enter your name:" namethen echo "hello $name ,welcome to my script"elseecho "sorry,too slow"fiexit 0

除了输入时间计时,还可以设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

法语写作助手 法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31 查看详情 法语写作助手

#!/bin/bashread -n1 -p "Do you want to continue [Y/N]?" answercase $answer inY | y)  echo "fine ,continue";;N | n)  echo "ok,good bye";;*) echo "error choice";;esacexit 0

该例子使用了-n选项,后接数值1,指示read命令只要接受到一个字符就退出。只要按下一个字符进行回答,read命令立即

接受输入并将其传给变量。无需按回车键。

 

3、默读(输入不显示在监视器上)

有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。典型的例子就是输入密码,当然还有很多其他需要隐藏的数据。

-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是 read命令将文本颜色设置成与背景相同的颜色)。

#!/bin/bashread  -s  -p "Enter your password:" passecho "your password is $pass"exit 0

4、读文件

最后,还可以使用read命令读取Linux系统上的文件。

每次调用read命令都会读取文件中的”一行”文本。当文件没有可读的行时,read命令将以非零状态退出。

读取文件的关键是如何将文本中的数据传送给read命令。

最常用的方法是对文件使用cat命令并通过管道将结果直接传送给包含read命令的 while命令

例子::

#!/bin/bashcount=1    //赋值语句,不加空格cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中do   echo "Line $count:$line"   count=$[ $count + 1 ]          //注意中括号中的空格。doneecho "finish"exit

以上就是介绍linux中read的用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/285000.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
内存卡怎么恢复数据到手机(恢复文件的最简单方法)
上一篇 2026年10月19日 06:12:10
为什么在玩在线游戏时会出现高延迟和数据包丢失,如何准确判断是本地网络还是游戏服务器问题?
下一篇 2025年11月5日 15:45:56

相关推荐

  • vscode如何对php文件进行内容替换_php文件全局替换详细操作教程

    vscode如何对php文件进行内容替换_php文件全局替换详细操作教程vscode如何对php文件进行内容替换_php文件全局替换详细操作教程vscode如何对php文件进行内容替换_php文件全局替换详细操作教程vscode如何对php文件进行内容替换_php文件全局替换详细操作教程

    答案:在VS Code中进行PHP文件内容替换,基础操作包括使用Ctrl+F查找、Ctrl+H在当前文件替换;全局替换通过Ctrl+Shift+H实现,可设置搜索范围为*.php文件;结合正则表达式可精准批量修改函数调用、属性访问等结构,提升重构效率。 在VS Code中对PHP文件进行内容替换,特…

    2026年10月19日 • 用户投稿
    100
  • [255]如何查找Linux服务器上JDK安装路径?

    [255]如何查找Linux服务器上JDK安装路径?[255]如何查找Linux服务器上JDK安装路径?[255]如何查找Linux服务器上JDK安装路径?[255]如何查找Linux服务器上JDK安装路径?

    成功连接到你要部署软件的linux服务器上。这是第一步。 要检查系统上是否已经安装了Java,可以直接在键盘上输入Linux命令:java -version。 如果系统已经安装了JDK,系统会显示安装的版本,例如我的就是Java 1.7版本。 如果没有安装JDK,则需要进行安装。如果已经安装,可以查…

    2026年10月19日 • 用户投稿
    000
  • Linux中常用目录有哪些作用

    Linux中常用目录有哪些作用Linux中常用目录有哪些作用Linux中常用目录有哪些作用Linux中常用目录有哪些作用

    这篇文章主要介绍了详解 linux 常用目录的作用的相关资料,这里列举常用目录并附实例帮助大家理解这部分内容,需要的朋友可以参考下  详解 Linux 常用目录的作用 一 常用一级目录 笔目鱼英文论文写作器 写高质量英文论文,就用笔目鱼 87 查看详情 注意: 1、根目录下的bin和sbin,usr…

    2026年10月19日 • 用户投稿
    400
  • Linux命令教程之比较搜索命令whereis与which的区别

    这篇文章主要介绍了linux命令搜索命令whereis与which的区别的相关资料,这里举例说明该如何区别他们之家的用法,需要的朋友可以参考下 Linux命令搜索命令whereis与which的区别 一 whereis 1、语法 whereis 命令名 搜索命令所在的路径以及帮助文档所在的位置 选项…

    2026年10月19日
    300
  • 详细讲解Linux shell中的printf的用法

    详细讲解Linux shell中的printf的用法详细讲解Linux shell中的printf的用法详细讲解Linux shell中的printf的用法详细讲解Linux shell中的printf的用法

    这篇文章主要介绍了linux shell中的printf的详细用法的相关资料,希望能通过本文能帮助到大家,需要的朋友可以参考下 Linux shell中的printf的详细用法 一 语法 printf ‘输出类型输出格式’ 输出内容 输出类型: %ns:输出字符串。n是数字指…

    2026年10月19日 • 用户投稿
    100
  • 解决Linux中unzip解压时中文乱码

    这篇文章主要介绍了linux 中unzip解压时中文乱码的解决办法的相关资料,这里提供两种解决办法,希望能通过本文帮助到大家,需要的朋友可以参考下 Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如“资料.zip”时,如果直接使用如下的命令,将会出现…

    2026年10月19日
    100
  • 解决Cordova Android构建失败:Java版本兼容性问题及解决方案

    在Cordova Android项目开发中,开发者常遇到“Unsupported class file major version 63”和“NoClassDefFoundError”等构建错误,这些问题通常源于Java JDK版本与Cordova、Gradle及Android SDK之间的不兼容。…

    2026年10月19日
    100
  • 面试中最常被问到的核心 Java 问题

    面试中最常被问到的核心 Java 问题面试中最常被问到的核心 Java 问题面试中最常被问到的核心 Java 问题面试中最常被问到的核心 Java 问题

    以下是一些 Java 技术面试中常见的核心问题: 核心 Java 面试题: Java 平台无关性的原因是什么?为什么 Java 不是纯粹的面向对象编程语言?Java 中堆内存和栈内存的区别是什么?Java 如何使用它们?Java 与 C 语言的主要区别有哪些?Java 为什么不使用指针?实例变量和局…

    2026年10月19日 • 用户投稿
    100
  • Linux shell ftp按照日期去下载文件的方法

    最近做项目遇到这样的需求要求ftp获取远程数据的文件,根据文件的创建时间点下载文件。下面小编给大家分享知识点小结,感兴趣的朋友要求看看吧 需求:ftp获取远程数据的文件,根据文件的创建时间点下载文件。 可以自行扩展根据文件的大小等其他需求。 知识点总结: 1、获取文件的时间: ls -lrt|awk…

    2026年10月19日
    000
  • 第四章 Samba服务

    第四章  Samba服务第四章  Samba服务第四章  Samba服务第四章  Samba服务

    第四章 samba服务 4.1 samba简介 在上一章中,我们讨论了NFS,它可以实现Linux系统之间的文件共享。我们知道Windows系统之间也有共享功能,但要实现Linux与Windows之间的文件和打印机共享,就需要借助Samba服务。 SMB(Server Message Block)协…

    2026年10月19日 • 用户投稿
    000
  • linux下C语言的多线程编程的详细介绍

    linux下C语言的多线程编程的详细介绍linux下C语言的多线程编程的详细介绍linux下C语言的多线程编程的详细介绍linux下C语言的多线程编程的详细介绍

    这篇文章主要介绍了linux下c语言的多线程编程,需要的朋友可以参考下 我们在写linux的服务的时候,经常会用到linux的多线程技术以提高程序性能  多线程的一些小知识: 一个应用程序可以启动若干个线程。 线程(Lightweight Process,LWP),是程序执行的最小单元。 立即学习“…

    2026年10月19日 • 用户投稿
    100
  • 微软确认 Win10 21H2 更新已大规模推送,不强制用户升级Win11

    微软确认 Win10 21H2 更新已大规模推送,不强制用户升级Win11微软确认 Win10 21H2 更新已大规模推送,不强制用户升级Win11微软确认 Win10 21H2 更新已大规模推送,不强制用户升级Win11微软确认 Win10 21H2 更新已大规模推送,不强制用户升级Win11

    早在2021年11月,微软便开始面向符合条件的设备推送windows 10的2021年11月更新(即版本21h2)。尽管windows 10的技术支持将持续至2025年10月,但微软已明确表示,未来不会再为windows 10引入全新特性。与此同时,windows 11则会每年迎来一次重要的功能更新…

    2026年10月19日 • 用户投稿
    200
  • Linux expect 的安装教程

    expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。使用它系统管理员 的可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 expect则可以根据程序的提示模拟标准输入提供给程…

    2026年10月19日
    100
  • 路由器192.168.1.253的登录密码忘了怎么办?初始是多少?

    路由器192.168.1.253的登录密码忘了怎么办?初始是多少?路由器192.168.1.253的登录密码忘了怎么办?初始是多少?路由器192.168.1.253的登录密码忘了怎么办?初始是多少?路由器192.168.1.253的登录密码忘了怎么办?初始是多少?

    路由器登录密码忘记后最直接有效的方法是恢复出厂设置,通过通电状态下长按reset键5到10秒,待指示灯闪烁后松开,等待重启;2. 重置后使用默认ip(如192.168.1.1或192.168.0.1)和默认用户名密码(如admin/admin)登录,具体信息可查看路由器底部标签;3. 登录后按照设置…

    2026年10月19日 • 用户投稿
    200
  • 教你如何用linux设置服务器自动重启

    作为程序员的我们都用过linux,我们都知道linux主要是做服务器用的,本篇文章我们就来教大家一种linux下设置服务器自动重启的技巧,希望对大家工作有用。 步骤如下: 每个月1号凌晨3点自动重启 步骤如下: 1、用root帐号登陆; 2、打开终端窗口; 3、输入”crontab -e…

    2026年10月19日
    300
  • php workerman

    php workermanphp workermanphp workermanphp workerman

    PHP Workerman 是一个高并发、低延迟、跨平台的 PHP 并发网络框架,特点包括:事件驱动、异步非阻塞、高效内存管理、使用协程技术,应用场景涉及即时通讯、网络爬虫、数据流处理、API 网关、微服务等。 什么是 PHP Workerman? PHP Workerman 是一个基于 PHP 的…

    2026年10月19日 • 用户投稿
    300
  • linux vlan配置详解

    linux vlan配置详解linux vlan配置详解linux vlan配置详解linux vlan配置详解

    本文主要给大家介绍了关于linux虚拟网络设备之vlan配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,希望能帮助到大家。 简介 VLAN是网络栈的一个附加功能,且位于下两层。首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去。…

    2026年10月19日 • 用户投稿
    200
  • VSCode怎样使用查找功能快速定位内容 VSCode新手查找功能的使用方法与技巧​

    VSCode怎样使用查找功能快速定位内容 VSCode新手查找功能的使用方法与技巧​VSCode怎样使用查找功能快速定位内容 VSCode新手查找功能的使用方法与技巧​VSCode怎样使用查找功能快速定位内容 VSCode新手查找功能的使用方法与技巧​VSCode怎样使用查找功能快速定位内容 VSCode新手查找功能的使用方法与技巧​

    vscode查找功能的核心答案是:1. 使用ctrl+f/cmd+f在当前文件中查找,输入关键词即可高亮所有匹配项并逐个浏览;2. 点击搜索框的.图标启用正则表达式模式,如输入^console.log.$查找以console.log开头的行,注意特殊字符需转义;3. 使用ctrl+shift+f/c…

    2026年10月19日 • 用户投稿
    100
  • Linux终极渗透测试命令总结

    本文主要和大家分享linux终极渗透测试命令总结,如下是一份 linux 机器的渗透测试备忘录,是在后期开发期间或者执行命令注入等操作时的一些典型命令,设计为测试人员进行本地枚举检查之用。 命令 描述 netstat -tulpn在 Linux 中显示对应了进程ID(PID)的网络端口。watch …

    2026年10月19日
    100
  • Linux调试工具GDB使用教程

    Linux调试工具GDB使用教程Linux调试工具GDB使用教程Linux调试工具GDB使用教程Linux调试工具GDB使用教程

    本文主要介绍了linux调试工具gdb使用简易教程,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下,希望能帮助到大家。 声明:本博客内容是由本人经过实验楼教程整理得来。 GDB的相关概念 GDB, 是 The GNU Project Debugger 的缩写, 是 Linux 下功能全…

    2026年10月19日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信