shell--标准输入输出(read&echo)

发布时间 - 2017-07-18 00:00:00    点击率:

 输入read:

  用途:

    从标准输入读取一行,或者从文件描述符FD(file descriptor)中读取一行,并且将其分割成字段。  

用法:  read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]

  常用选项:  

-a:(arrary) 将读取得的字符划分成单词,按照数组存储(从0开始)


#!/bin/ -  ${variable[  ${variable[  ${variable[  ${variable[]}

运行效果:

按照单词的分割放置到数组中,索引从0开始
34 ew qr34 3qr wer er qw
第1个:
34
第2个:
ew
第3个:
qr34
第4个:
3qr

 

-n:接收指定个数的字符,当达到接收的个术后,立即退出输入状态


源码:
#- -n  
 ${num}

运行效果:

-n read接受10个字符
sgfgsngfdf
接收的10个字符是:sgfgsngfdf


-p : 允许在read命令后直接指定一个提示,并且可以为多个变量赋值


源码:
 -p    $num3

运行效果:
使用-p参数完成多个变量赋值:
请输入三个数字或字符:(用空格隔开)23 34 345 num1=23num2=34num3=345
 


     -r:不允许反斜线转义任何字符


     -s:不将read输入的数据显示在屏幕上


源码:
#- -p  - 
 ${password}

运行效果:

-s read的输入不显示在屏幕上:
password:
password is 3432 rq erewr w


     -t :read命令等待输入的秒数。当计时满时,回返回一个非0的状态,并且退出等待输入。


源码:
#- -t  ${num}

运行效果:

将会等等待两秒的输入,超时后,会退出等待;返回非0数值

 


     -u:从文件描述符FD(file descriptor)读取。

 

  补充内容:文件描述符FD   文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。   习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。尽管这种习惯并非Unix内核的特性,但是因为一些 shell 和很多应用程序都使用这种习惯,因此,如果内核不遵循这种习惯的话,很多应用程序将不能使用。

 从文件读取的例子:



  test. |


运行效果:
read接受文本作为输入

接收的文本字符是:#------------------------------------------

接收的文本字符是:#------------------------------------------

接收的文本字符是:# read接受文本作为输入

接收的文本字符是:echo " read接受文本作为输入"

接收的文本字符是:cat test.sh | while read line

接收的文本字符是:do

接收的文本字符是:echo

接收的文本字符是:echo "接收的文本字符是:"${line}

接收的文本字符是:done

 


# 多个  # 应用程序  # 是一个  # 这一  # 将会  # 屏幕上  # 适用于  # 将其  # 它是  # 请输入 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端网站建设与定制开发一站式解决方案 中企动力  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel如何为API生成Swagger或OpenAPI文档  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel如何处理CORS跨域请求?(配置示例)  香港服务器如何优化才能显著提升网站加载速度?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  三星网站视频制作教程下载,三星w23网页如何全屏?  香港服务器租用每月最低只需15元?  如何快速上传建站程序避免常见错误?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何实现javascript表单验证_正则表达式有哪些实用技巧  如何用好域名打造高点击率的自主建站?  python中快速进行多个字符替换的方法小结  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  EditPlus中的正则表达式实战(6)  如何在阿里云部署织梦网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  iOS UIView常见属性方法小结  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何在万网开始建站?分步指南解析  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel如何使用Livewire构建动态组件?(入门代码)  如何挑选高效建站主机与优质域名?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  java ZXing生成二维码及条码实例分享  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  在线制作视频的网站有哪些,电脑如何制作视频短片?  微信小程序 wx.uploadFile无法上传解决办法  如何在服务器上三步完成建站并提升流量?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何确认建站备案号应放置的具体位置?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何快速生成专业多端适配建站电话?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  使用Dockerfile构建java web环境  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  使用spring连接及操作mongodb3.0实例  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理