(转载)shell输入、输出

1、echo:

使用e c h o命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:

echo string

echo命令有很多功能,其中最常用的是下面几个:

\c 不换行。

\f 进纸。

\t 跳格。

\n 换行。

用反斜杠\来使shell忽略它的特殊含义

使用- n选项来禁止echo命令输出后换行

使用-e选项才能使转义符生效

【转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。

转义字符 意义 ASCII码值(十进制)

\a 响铃(BEL) 007

\b 退格(BS) 008

\f 换页(FF) 012

\n 换行(LF) 010

\r 回车(CR) 013

\t 水平制表(HT) 009

\v 垂直制表(VT) 011

\\ 反斜杠 092

\? 问号字符 063

\' 单引号字符 039

\" 双引号字符 034

\0 空字符(NULL) 000

\ddd 任意字符 三位八进制

\xhh 任意字符 二位十六进制】

如果想把一个字符串输出到文件中,使用重定向符号>。在下面的例子中一个字符串被重

定向到一个名为m y f i l e的文件中:

$ echo "The log files have all been done"> myfile

或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:

$ echo "$LOGNAME carried them out at `date`">>myfile

2、read:

可以使用r e a d语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么r e a d将会把所有的输入赋给该变量,对于多个变量,空格分割,如果输入文本域过长, Shell 将所有的超长部分赋予最后一个变量。

3、cat:

如果希望创建一个新文件,并向其中输入一些内容,只需使用c a t命令把标准输出重定向到该文件中。输入一些文字,输入完毕后按< CTRL-D >结束输入。这是个非常简单的文字编辑器!

4、管道:

可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用竖杠|表示。

5、标准输入、输出和错误:

当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描

述符来引用这些文件。

文件——文件描述符

输入文件:标准输入——0

输出文件:标准输出——1

错误输出文件:标准错误——2

6、文件重定向:

(1)常用的文件重定向命令

command > filename 把把标准输出重定向到一个新文件中

command >> filename 把把标准输出重定向到一个文件中(追加)

command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中

command < filename >filename2 把command命令以filename文件作为标准输入,以filename 2文件作为标准输出

command < filename 把command命令以filename文件作为标准输入

command << delimiter 把从标准输入中读入,直至遇到delimiter分界符

command <&m 把把文件描述符m作为标准输入

command >&m 把把标准输出重定向到文件描述符m中

command <&- 把关闭标准输入

(2)重定向标准输出:

$ls amount*  >>  files所有的目录名和以account开头的文件名都被写入到file.out文件中。

(3)一个快速发现错误的方法就是,先将输出重定向到一个文件中,然后再把标准错误重定向到另外一个文件中。

$ cat account_qtr.doc account_end.doc 1>accounts.out 2>accounts.err

现在如果出现了错误,相应的错误将会保存在accounts.err文件中。

(4)合并标准输出和标准错误:

$ cleanup >cleanup.out 2>&1

在上面的例子中,我们将cleanup脚本的输出重定向到cleanup.out文件中,而且其错误也被重定向到相同的文件中。

7、exec:

exec命令可以用来替代当前shell;换句话说,并没有启动子shell。使用这一命令时任何现有环境都将会被清除,并重新启动一个shell。

 My log:

1 imp test1/test1@cadb file='/home/upitics/dmp_file/emp.dmp' full=y > ./log/emp.log 2>&1 

  发生warning的时候,要加上2>&1才能输出到文件

原文地址:https://www.cnblogs.com/rethink/p/1676543.html