shell输入与输出
2012-11-22 14:08
274 查看
如果是LINUX系统,那么......
必须使用- n选项来禁止echo命令输出后换行:
如果你希望列出系统中所有的文件系统,可以使用管道把 d f命令的输出传递给 a w k命令,
a w k显示出其中的第一列。你还可以再次使用管道把 a w k的结果传递给 g r e p命令,去掉最上面
的题头f i l e s y s t e m
当然,你没准还会希望只显示出其中的分区名,不显示 / d e v / 部分,这没问题;我们只要
在后面简单地加上另一个管道符号和相应的 s e d 命令即可。
5.5 tee
t e e命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个
副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命
令再合适不过了。
它的一般形式为:
tee -a files
其中,- a表示追加到文件末尾。
当执行某些命令或脚本时,如果希望把输出保存下来, t e e命令非常方便。
下面我们来看一个例子,我们使用 w h o命令,结果输出到屏幕上,同时保存在 w h o . o u t文
件中:
$ who | tee who.txt
在对标准错误进行重定向时,必须要使用文件描述符,但是对于标准输入和输出来说,
这不是必需的。为了完整起见,我们在表 5 - 1中列出了两种方法。
表5-1 常用文件重定向命令
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中 (追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中 (追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中 (追加)
command < filename >filename2 把c o m m a n d命令以 f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件
作为标准输出
command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到 d e l i m i t e r分界符
command <&m 把把文件描述符 m作为标准输入
command >&m 把把标准输出重定向到文件描述符 m中
command <&- 把关闭标准输入
重定向标准错误
g r e p命令没有找到该文件,缺省地向终端输出了一个错误信息。现在让我们把错误重定
向到文件/ d e v / n u l l 中(实际就上是系统的垃圾箱 ):
$ grep "trident" missiles 2>/dev/null
这样所有的错误输出都输送到了 / d e v / n u l l,不再出现在屏幕上
$ cleanup >cleanup.out 2>&1
在上面的例子中,我们将 c l e a n u p脚本的输出重定向到 c l e a n u p . o u t 文件中,而且其错误也
被重定向到相同的文件中。
$ grep "standard"* > grep.out 2>&1
5.10 exec
e x e c命令可以用来替代当前 s h e l l ;换句话说,并没有启动子 s h e l l。使用这一命令时任何现
有环境都将会被清除,并重新启动一个 s h e l l 。它的一般形式为:
exec command
其中的c o m m a n d通常是一个 s h e l l 脚本
必须使用- n选项来禁止echo命令输出后换行:
如果你希望列出系统中所有的文件系统,可以使用管道把 d f命令的输出传递给 a w k命令,
a w k显示出其中的第一列。你还可以再次使用管道把 a w k的结果传递给 g r e p命令,去掉最上面
的题头f i l e s y s t e m
当然,你没准还会希望只显示出其中的分区名,不显示 / d e v / 部分,这没问题;我们只要
在后面简单地加上另一个管道符号和相应的 s e d 命令即可。
5.5 tee
t e e命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个
副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命
令再合适不过了。
它的一般形式为:
tee -a files
其中,- a表示追加到文件末尾。
当执行某些命令或脚本时,如果希望把输出保存下来, t e e命令非常方便。
下面我们来看一个例子,我们使用 w h o命令,结果输出到屏幕上,同时保存在 w h o . o u t文
件中:
$ who | tee who.txt
在对标准错误进行重定向时,必须要使用文件描述符,但是对于标准输入和输出来说,
这不是必需的。为了完整起见,我们在表 5 - 1中列出了两种方法。
表5-1 常用文件重定向命令
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中 (追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中 (追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中 (追加)
command < filename >filename2 把c o m m a n d命令以 f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件
作为标准输出
command < filename 把c o m m a n d命令以f i l e n a m e文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到 d e l i m i t e r分界符
command <&m 把把文件描述符 m作为标准输入
command >&m 把把标准输出重定向到文件描述符 m中
command <&- 把关闭标准输入
重定向标准错误
g r e p命令没有找到该文件,缺省地向终端输出了一个错误信息。现在让我们把错误重定
向到文件/ d e v / n u l l 中(实际就上是系统的垃圾箱 ):
$ grep "trident" missiles 2>/dev/null
这样所有的错误输出都输送到了 / d e v / n u l l,不再出现在屏幕上
$ cleanup >cleanup.out 2>&1
在上面的例子中,我们将 c l e a n u p脚本的输出重定向到 c l e a n u p . o u t 文件中,而且其错误也
被重定向到相同的文件中。
$ grep "standard"* > grep.out 2>&1
5.10 exec
e x e c命令可以用来替代当前 s h e l l ;换句话说,并没有启动子 s h e l l。使用这一命令时任何现
有环境都将会被清除,并重新启动一个 s h e l l 。它的一般形式为:
exec command
其中的c o m m a n d通常是一个 s h e l l 脚本
相关文章推荐
- shell的输入与输出
- linux-shell(4) shell输入与输出【自己的笔记】
- Shell 输入/输出重定向
- linux shell编程指南第五章------shell输入与输出1
- 2. 三. 标准输入/输出和重定向 (shell命令)
- Shell教程(11)— 输入/输出重定向
- Linux – shell输入与输出
- shell的输入与输出
- 【Linux 系统编程】shell 输入/输出重定向(四)
- Shell的文件描述符操作,包括标准输入,标准输出,自定义文件描述符
- Bash Shell脚本:输入时间,输出距离你的生日天数
- shell基础-输入输出以及重定向/多命令顺序执行与管道符/通配符与特殊符号
- Shell 输入/输出重定向
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- shell标准输入输出
- Linux&nbsp;shell&nbsp;逆序输出输入的参数
- LINUX下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
- Shell 输入/输出重定向
- Shell 输入/输出重定向
- Shell 输入/输出重定向