OpenEuler shell基础 read 读取用户输入的变量信息

举报
千江有水千江月 发表于 2025/03/15 16:12:39 2025/03/15
【摘要】 课程使用shell脚本 开发者空间-云主机使用开发者空间的云主机进行学习,方便快捷,推荐! shellOpenEuler shell基础 read 读取用户输入的变量信息[developer@developer ~]$ read namecoder [developer@developer ~]$ echo $namecoder[developer@developer ~]$ read n...

课程

使用shell脚本

开发者空间-云主机

使用开发者空间的云主机进行学习,方便快捷,推荐!

shell

  • OpenEuler shell基础 read 读取用户输入的变量信息
[developer@developer ~]$ read name
coder 
[developer@developer ~]$ echo $name
coder
[developer@developer ~]$ read num1 num2 num3
11 22.3 44.5
[developer@developer ~]$ echo $num1 $num2 $num3
11 22.3 44.5

[developer@developer ~]$ read --help
read: read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]
    从标准输入读取一行并将其分为不同的域。
    
    从标准输入读取单独的一行,或者如果使用了 -u 选项,从文件描述符 FD 中读取。
    该行被分割成域,如同词语分割一样,并且第一个词被赋值给第一个 NAME 变量,第二
    个词被赋值给第二个 NAME 变量,如此继续,直到剩下所有的词被赋值给最后一个 NAME
    变量。只有 $IFS 变量中的字符被认作是词语分隔符。
    
    如果没有提供 NAME 变量,则读取的行被存放在 REPLY 变量中。
    
    选项:
      -a array	将词语赋值给 ARRAY 数组变量的序列下标成员,从零开始
      -d delim	持续读取直到读入 DELIM 变量中的第一个字符,而不是换行符
      -e	使用 Readline 获取行
      -i text	使用 TEXT 文本作为 Readline 的初始文字
      -n nchars	读取 nchars 个字符之后返回,而不是等到读取换行符。
    		但是分隔符仍然有效,如果遇到分隔符之前读取了不足 nchars 个字符。
      -N nchars	在准确读取了 nchars 个字符之后返回,除非遇到文件结束符或者读超时,
    		任何的分隔符都被忽略
      -p prompt	在尝试读取之前输出 PROMPT 提示符并且不带
    		换行符
      -r	不允许反斜杠转义任何字符
      -s	不回显终端的任何输入
      -t timeout	如果在 TIMEOUT 秒内没有读取一个完整的行则超时并且返回失败。
    		TMOUT 变量的值是默认的超时时间。TIMEOUT 可以是小数。
    		如果 TIMEOUT 是 0,那么仅当在指定的文件描述符上输入有效的时候,
    		read 才返回成功;否则它将立刻返回而不尝试读取任何数据。
    		如果超过了超时时间,则返回状态码大于 128
      -u fd	从文件描述符 FD 中读取,而不是标准输入
    
    退出状态:
    返回码为零,除非遇到了文件结束符、读超时(且返回码不大于128)、
    出现了变量赋值错误或者无效的文件描述符作为参数传递给了 -u 选项。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。