1 / 16
文档名称:

linux与unix shell编程指南--shell输入与输出.doc

格式:doc   大小:25KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

linux与unix shell编程指南--shell输入与输出.doc

上传人:wz_198614 2017/6/18 文件大小:25 KB

下载得到文件列表

linux与unix shell编程指南--shell输入与输出.doc

相关文档

文档介绍

文档介绍:LINUX 与 UNIX Shell 编程指南--shell 输入与输出 LINUX 与 UNIX Shell 编程指南---5 shell 输入与输出在 shell 脚本中, 可以用几种不同的方式读入数据: 可以使用标准输入—缺省为键盘, 或者指定一个文件作为输入。对于输出也是一样: 如果不指定某个文件作为输出, 标准输出总是和终端屏幕相关联。如果所使用命令出现了什么错误, 它也会缺省输出到屏幕上, 如果不想把这些信息输出到屏幕上,也可以把这些信息指定到一个文件中。大多数使用标准输入的命令都指定一个文件作为标准输入。如果能够从一个文件中读取数据,何必要费时费力地从键盘输入呢? 本章我们将讨论以下内容: ? 使用标准输入、标准输出及标准错误。? 重定向标准输入和标准输出。本章全面讨论了 shell 对数据和信息的标准输入、标准输出, 对重定向也做了一定的介绍。? 技术末学(2007-8-14 16:09:51) 使用 echo 命令可以显示文本行或变量, 或者把字符串输入到文件。它的一般形式为: echo string echo 命令有很多功能,其中最常用的是下面几个: QUOTE: \c 不换行。\f 进纸。\t 跳格。\n 换行。 Unix 下用 echo 命令输出转义符以及变量。在下面的例子中,你可以让终端铃响一声, 显示出$HOME 目录, 并且可以让系统执行 tty 命令( 注意, 该命令用键盘左上角的符号,法语中的抑音符引起来,不是单引号, )。 CODE: $echo "\007Your directory is $HOME,you are connected on `tty`" 显示如下: CODE: Your directory is /home/dev,you are connected on /dev/ttyp1Linux 下必须使用-n 选项来禁止 echo 命令输出后换行: CODE: $ echo -n "What is your name :" 必须使用-e 选项才能使转义符生效: CODE: $echo -e "What is your name:\n" 如果想把一个字符串输出到文件中,使用重定向符号> 。在下面的例子中一个字符串被重定向到一个名为 myfile 的文件中: CODE: $ echo "The log files h ave all been done"> myfil e 或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容: CODE: $ echo "$LOGNAME carried them out at `date`">>myfile 现在让我们看一下 myfile 文件中的内容: CODE: $pg myfile The log files have all been done. [EOF]: 初涉 shell 的用户常常会遇到的一个问题就是如何把双引号包含到 echo 命令的字符串中。引号是一个特殊字符,所以必须要使用反斜杠\ 来使 shell 忽略它的特殊含义。假设你希望使用 echo 命令输出这样的字符串:“/dev/rmt0 ”,那么我们只要在引号前面加上反斜杠\ 即可: CODE: $echo "\"/dev/tty"\" "/dev/tty" ? 技术末学(2007-8-14 16:29:50) 可以使用 read 语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量, 那么 read 将会把所有的输入赋给该变量, 直至遇到第一个文件结束符或回车。它的一般形式为: CODE: read varible1 varible2 ... 在下面的例子中,只指定了一个变量,它将被赋予直至回车之前的所有内容: QUOTE: $read name John $echo $name John 在下面的例子中, 我们给出了两个变量, 它们分别被赋予名字和姓氏。 shell 将用空格作为变量之间的分隔符: QUOTE: $read name surname John hanse $echo $surname $name hanse John 如果输入文本域过长, Shell 将所有的超长部分赋予最后一个变量。下面的例子, 假定要读取变量名字和姓, 但这次输入三个名字; 结果如下; QUOTE: $read name surname John Lemon Doer $echo $name John $echo $surname Lemon Doer 在上面的例子中, 如果我们输入字符串 John Lemon Doe , 那么第一个单词将被赋给第一个变量, 而由于变量数少于单词数, 字符串后面的部分将被全部赋给第二个变量。在编写