zoukankan      html  css  js  c++  java
  • 【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 检测到文件结束符或一个错误发生。

    示例
    下列脚本打印一个文件,这个文件中每行的第一个字段被移动到本行的末尾。

    while read -r xx yy
    do
             print printf "%s %s/n" $yy $xx
    done < InputFile读取一行,把它分成字段,并使用 "Please enter: " 作为提示符,请输入:

    read word1?"Please enter: " word2系统显示:

    Please enter:
    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 -s line < input_file如果输入文件包含 "echo hello world," ,那么在历史记录文件中将会把 "echo hello world" 保存为一个命令。

  • 相关阅读:
    Kubernetes节点维护
    Kubernetes helm配置国内镜像源
    windows universal app中使用mvvm light
    windows phone 开发常用小技巧
    异步编程中的最佳做法(Async/Await) --转
    windows phone 开发常用小技巧
    windows phone 开发常用小技巧
    windows phone 开发常用小技巧
    #假期归来# 看看国外开发者第一时间用swift写的Flappy Bird (2014.6.3)
    vs2013 TFS如何彻底删除团队项目
  • 原文地址:https://www.cnblogs.com/vman/p/2195822.html
Copyright © 2011-2022 走看看