对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解read命令的大致用途:

编写一个脚本:

#!/bin/bash

# hao32 test read

echo -e "Please enter your test :"

read TESTREAD

echo $TESTREAD

试着运行下这个脚本,你就可以大致了解read命令的用法,下面是转载一篇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" 保存为一个命令。

欢迎转载本文,请注明来自:http://www.linuxsense.org

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(17)-LinQ动态排序
  2. JSON格式序列化与反序列化(List、XML)
  3. web 调用WCF 每次都要重新编译才能正常使用 终于解决了
  4. Error:The network adaptor could not establish the connection问题的解决办法
  5. 【Java基础】通用程序设计
  6. centos7下使用yum安装mysql数据库以及设置远程访问
  7. java设计优化--代理模式
  8. [转] 深入探讨C++中的引用
  9. Android软件测试Monkey测试工具
  10. Myeclipse中tomcat所应用的JDK设置
  11. pb 插入控件是出问题
  12. linux 参数优化
  13. view中的setTag和getTag方法的理解
  14. Linux目录结构及文件基础操作
  15. 猴子吃桃儿问题(C#)
  16. Linux 上使用LVM 扩展磁盘Size
  17. vmware12启动centos6.8报错ACPI:memory_hp:Memory online failed
  18. 泛型--增强for循环--数组和集合转换
  19. (二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列
  20. 如何使用JPQL写纯SQL语句

热门文章

  1. hdu 4358 Boring counting 离散化+dfs序+莫队算法
  2. javascript 通用loading动画效果
  3. dvd的舞女
  4. 对敏捷开发的误解(转自MBAlib)
  5. WindowsPhone客户端第一次审核失败记录
  6. python 程序列表
  7. centos 下 yum 安装 nginx 平滑切换安装到 Tengine
  8. 读取Excel列内容
  9. bzoj 2555: SubString 后缀自动机+LCT
  10. URAL 1119. Metro(BFS)