设为首页 收藏本站
查看: 708|回复: 0

shell脚本中read用法

[复制链接]

尚未签到

发表于 2018-8-27 12:37:57 | 显示全部楼层 |阅读模式
  @font-face {  font-family: "Courier New";}@font-face {  font-family: "宋体";}@font-face {  font-family: "Cambria Math";}@font-face {  font-family: "@宋体";}@font-face {  font-family: "Calibri";}@font-face {  font-family: "MathJax_Math";}p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0 0 0; text-align: justify; font-size: 14px; font-family: Calibri; }h1 { margin: 23px 0 22px; text-align: justify; line-height: 240%; page-break-after: avoid; font-size: 29px; font-family: Calibri; font-weight: bold; }strong {  }p { margin-right: 0; margin-left: 0; font-size: 16px; font-family: Calibri; }.MsoChpDefault { font-size: 13px; }div.WordSection1 {  }
Shell脚本中read用法详解
  作用
  从标准输入中读取一行
  语法
  read [ -p ][ -r ][ -s ][ -u[ n ] ] [ VariableName?Prompt ]
  [VariableName ... ]
  描述
  read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量,用IFS(内部字段分隔符)变量中的字符作为分隔符。
  VariableName参数指定 shell 变量的名称,shell 变量获取输入行一个字段的值。
  由VariableName参数指定的第一个 shell 变量指定给第一个字段的值,由 VariableName参数指定的第二个shell 变量指定给第二个字段的值,以此类推,直到最后一个字段。如果标准输入行的字段比相应的由 VariableName 参数指定的 shell 变量的个数多,把全部余下的字段的值赋给指定的最后的 shell 变量。如果比 shell 变量的个数少,则剩余的 shell 变量被设置为空字符串。
  注意:如果省略了 VariableName 参数,变量 REPLY 用作缺省变量名。
  由 read 命令设置的 shell 变量影响当前 shell 执行环境。
  标志
  -p 用 |& (管道,& 的记号名称)读取由 Korn shell 运行的进程的输出作为输入。
  注:-p 标志的文件结束符引起该进程的清除,因此产生另外一个进程。
  -r 指定读取命令把一个 \ (反斜杠) 处理为输入行的一部分,而不把它作为一个控制字符。
  -s 把输入作为一个命令保存在 Korn shell 的历史记录文件中。
  -u [ n ] 读取一位数的文件描述符号码 n 作为输入。文件描述符可以用 ksh exec 内置命令打开。n 的缺省值是 0,表示的是键盘。值 2 表示标准错误。
  参数
  VariableName?Prompt指定一个变量的名称和一个要使用的提示符。当 Korn shell 是交互式时,它将把提示符写到标准错误,并执行输入。Prompt 包含多于一个的字,必须用单引号或双引号括起来。
  VariableName... 指定一个或多个由空格分隔的变量名。
  退出状态
  这个命令返回下列出口值:
  0 成功完成。
  >0 检测到文件结束符或一个错误发生。
  示例
  下列脚本打印一个文件,这个文件中每行的第一个字段被移动到本行的末尾。
  whileread -r xx yy
  do
  print printf"%s %s/n" yyxx
  done < InputFile读取一行,把它分成字段,并使用"Please enter: " 作为提示符,请输入:
  readword1?"Please enter: " word2系统显示:
  Pleaseenter:
  You enter:
  hello world变量 word1 的值应该是 "hello",变量 word2 应该是 "world."
  为创建一个共同进程,用 print -p 写到共同进程,并用 read -p 从共同进程中读取输入,请输入:
  (read;print "hello $REPLY")
  print -p "world"
  read-p line变量 line 的值应该是 "hello world."
  为把输入行的副本保存为历史文件中的一个命令,请输入:
  read -sline < input_file如果输入文件包含 "echo hello world," ,那么在历史记录文件中将会把 "echo hello world" 保存为一个命令。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557325-1-1.html 上篇帖子: 常用的shell命令汇总 Linux基础 下篇帖子: 为了 SHELL脚本开发汉诺塔游戏 部分草稿 shell建立二维数组并打印
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表