- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX与UNIXShell编程指南--shell输入与输出讲述
LINUX与UNIX Shell编程指南--- 5 shell输入与输出在shell脚本中,可以用几种不同的方式读入数据:可以使用标准输入—缺省为键盘,或者指定一个文件作为输入。对于输出也是一样:如果不指定某个文件作为输出,标准输出总是和终端屏幕相关联。如果所使用命令出现了什么错误,它也会缺省输出到屏幕上,如果不想把这些信息输出到屏幕上,也可以把这些信息指定到一个文件中。大多数使用标准输入的命令都指定一个文件作为标准输入。如果能够从一个文件中读取数据,何必要费时费力地从键盘输入呢?本章我们将讨论以下内容:? 使用标准输入、标准输出及标准错误。? 重定向标准输入和标准输出。本章全面讨论了shell对数据和信息的标准输入、标准输出,对重定向也做了一定的介绍。技术末学 (2007-8-14 16:09:51)
使用echo命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:echo stringecho命令有很多功能,其中最常用的是下面几个:
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 have all been done myfile或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
CODE:
$ echo $LOGNAME carried them out at `date`myfile现在让我们看一下myfile文件中的内容:
CODE:
$pg myfileThe 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 nameJohn$echo $nameJohn
在下面的例子中,我们给出了两个变量,它们分别被赋予名字和姓氏。shell将用空格作为变量之间的分隔符:
QUOTE:
$read name surnameJohn hanse$echo $surname $namehanse John
如果输入文本域过长, Shell将所有的超长部分赋予最后一个变量。下面的例子,假定要读取变量名字和姓,但这次输入三个名字;结果如下;
QUOTE:
$read name surname John Lemon Doer$echo $nameJohn$echo $surnameLemon Doer
在上面的例子中,如果我们输入字符串John Lemon Doe,那么第一个单词将被赋给第一个变量,而由于变量数少于单词数,字符串后面的部分将被全部赋给第二个变量。在编写shell脚本的时候,如果担心用户会对此感到迷惑,可以采用每一个read语句只给一个变量赋值的办法.
技术末学 (2007-8-14 16:51:31)
cat是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。在使用c
文档评论(0)