shell脚本程序 3、输入与输出(一)echo、read、cat
| 分类: ubuntu |
在shell脚本中,可以用几种不同的方式读入数据:可以使用标准输入—缺省为键盘,或者指定一个文件作为输入。对于输出也是一样:如果不指定某个文件作为输出,标准输出总是和终端屏幕相关联。如果所使用命令出现了什么错误,它也会缺省输出到屏幕上,如果不想把这些信息输出到屏幕上,也可以把这些信息指定到一个文件中。
1、 echo
使用echo命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:
echo string
echo命令有很多功能,其中最常用的是下面几个:
\c 不换行。
\f 进纸。
\t 跳格。
\n 换行。
如果希望提示符出现在输出的字符串之后,可以用:
http://s3/small/003yHjTLgy6EpNflMqu92&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
上面的命令将会有如下的显示:
http://s16/small/003yHjTLgy6EpNjeUkDbf&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
其中“□”是光标。
如果想在输出字符之后,让光标移到下一行,可以用:
$ echo "The red pen ran out of ink"
还可以用echo命令输出转义符以及变量。在下面的例子中,你可以让终端铃响一声,显示出$HOME目录,并且可以让系统执行tty命令(注意,该命令用键盘左上角的符号,法语中的抑音符引起来,不是单引号‘)。
http://s12/bmiddle/003yHjTLgy6EpNroVWX3b&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
注意:如果是LINUX系统,那么必须使用-
n选项来禁止echo命令输出后换行:
$ echo -n "What is your name :"
必须使用-e选项才能使转义符生效:
http://s12/bmiddle/003yHjTLgy6EpNAHft14b&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
如果希望在echo命令输出之后附加换行,可以使用\ n选项:
http://s2/bmiddle/003yHjTLgy6EpNK70bv91&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
如果是LINUX系统,那么别忘了使用- e选项才能使转义符生效:
http://s4/bmiddle/003yHjTLgy6EpNP7XdV63&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
如果想把一个字符串输出到文件中,使用重定向符号>。在下面的例子中一个字符串被重定向到一个名为myfile的文件中:
$ echo "The log files have all been done"> myfile
或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
$ echo "$LOGNAME carried them out at `date`">>myfile
现在让我们看一下myfile文件中的内容:
http://s7/bmiddle/003yHjTLgy6EpNY0M2W56&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
初涉shell的用户常常会遇到的一个问题就是如何把双引号包含到echo命令的字符串中。引号是一个特殊字符,所以必须要使用反斜杠\来使shell忽略它的特殊含义。假设你希望使用echo命令输出这样的字符串:
“/dev/rmt0”,那么我们只要在引号前面加上反斜杠\即可:
$ echo "\"/dev/rmt0"\"
"/dev/rmt0"
2、read
可以使用read语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。
它的一般形式为:
read varible1 varible2 ...
在下面的例子中,只指定了一个变量,它将被赋予直至回车之前的所有内容:
http://s2/small/003yHjTLgy6EpOqkA7f51&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
在下面的例子中,我们给出了两个变量,它们分别被赋予名字和姓氏。shell将用空格作为变量之间的分隔符:
http://s9/small/003yHjTLgy6EpOwkNEQ08&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
如果输入文本域过长,Shell
将所有的超长部分赋予最后一个变量。下面的例子,假定要读取变量名字和姓,但这次输入三个名字;结果如下;
http://s16/small/003yHjTLgy6EpODvpcrdf&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
在上面的例子中,如果我们输入字符串John Lemon
Doe,那么第一个单词将被赋给第一个变量,而由于变量数少于单词数,字符串后面的部分将被全部赋给第二个变量。在编写shell脚本的时候,如果担心用户会对此感到迷惑,可以采用每一个read语句只给一个变量赋值的办法:
http://s1/small/003yHjTLgy6EpOKjNde40&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
用户在运行上面这个脚本的时候,就能够知道哪些信息赋给了哪个变量。
http://s10/small/003yHjTLgy6EpOOOQK589&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
如果是LINUX系统,那么别忘了使用“-n”选项。
http://s12/small/003yHjTLgy6EpOUEjrB3b&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
http://s5/small/003yHjTLgy6EpOUi6vWc4&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
3、cat
cat是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。在使用cat命令时要注意,它不会在文件分页符处停下来;它会一下显示完整个文件。如果希望每次显示一页,可以使用
more命令或把cat命令的输出通过管道传递到另外一个具有分页功能的命令中,请看下面的例子:
$ cat myfile | more
或
$ cat myfile | pg
cat命令的一般形式为:
cat [options] filename1 ... filename2 ...
cat命令最有用的选项就是:
-v 显示控制字符
如果希望显示名为myfile的文件,可以用:
$ cat myfile
如果希望显示myfile1、myfile2、myfile3这三个文件,可以用:
$ cat myfile1 myfile2 myfile3
如果希望创建一个名为bigfile的文件,该文件包含上述三个文件的内容,可以把上面命令的输出重定向到新文件中:
$ cat myfile1 myfile2 myfile3 > bigfile
如果希望创建一个新文件,并向其中输入一些内容,只需使用cat命令把标准输出重定向到该文件中,这时cat命令的输入是标准输入—键盘,你输入一些文字,输入完毕后按<
CTRL - D >结束输入。这真是一个非常简单的文字编辑器!
http://s10/small/003yHjTLgy6EpPcpgZrf9&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
还可以使用cat命令来显示控制字符。这里有一个对从DOS机器上ftp过来的文件进行检察的例子,在这个例子中,所有的控制字符<
CTRL - M >都在行末显示了出来。
http://s1/small/003yHjTLgy6EpPgPdDi00&6903、输入与输出(一)echo、read、cat" TITLE="shell脚本程序
有一点要提醒的是,如果在敲入了cat以后就直接按回车,该命令会等你输入字符。如果你本来就是要输入一些字符,那么它除了会在你输入时在屏幕上显示以外,还会再回显这些内容;最后按<
CTRL - D >结束输入即可。
参考文献:《Linux与unix shell编程指南》

加载中…