`
tory320
  • 浏览: 33193 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

shell 编程之2>&1

阅读更多
shell 编程之2>&1

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用
/tmp/test.sh > /tmp/test.log 2>&1

前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?

要解释这个问题,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1 的意思就是将标准错误也输出到标准输出当中。

下面通过一个例子来展示2>&1有什么作用:
$ cat test.sh
t
date

test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout
./test.sh > test1.log
./test.sh: line 1: t: command not found

$ cat test1.log
Tue Oct  9 20:51:50 CST 2007

可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。
$ ./test.sh > test2.log 2>&1

$ cat test2.log
./test.sh: line 1: t: command not found
Tue Oct  9 20:53:44 CST 2007

这次,stderr和stdout的内容都被重定向到log文件中了。

实际上, > 就相当于 1> 也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了,那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。如果只想重定向标准错误到文件中,则可以使用2> file。
分享到:
评论

相关推荐

    Linux Shell编程3/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br&gt;|_使用find和xargs&lt;br&gt;|_后台执行命令&lt;br&gt;|_文件名置换&lt;br&gt;|_shell输入与输出&lt;br&gt;|_命令执行顺序&lt;br&gt;第二部分文本过滤&lt;br&gt;|_正则表达式介绍&lt;br&gt;...

    shell编程2 shell编程2 shell编程2

    shell编程2 shell编程2 shell编程2shell编程2 shell编程2 shell编程2shell编程2 shell编程2 shell编程2shell编程2 shell编程2 shell编程2

    shell编程指南shell编程指南shell编程指南shell编程指南

    shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南shell编程指南

    shell编程教程.chm

    shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell编程(一) Linux的shell编程(二) Linux的...

    Shell编程高级进阶系列视频.zip

    13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...

    shell 编程shell 编程

    shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程shell 编程...

    Linux Shell编程2/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br&gt;|_使用find和xargs&lt;br&gt;|_后台执行命令&lt;br&gt;|_文件名置换&lt;br&gt;|_shell输入与输出&lt;br&gt;|_命令执行顺序&lt;br&gt;第二部分文本过滤&lt;br&gt;|_正则表达式介绍&lt;br&gt;...

    shell编程shell编程shell编程shell编程

    shell编程shell编程shell编程shell编程

    shell编程题目练习

    shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率

    shell 编程指南pdf

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    UNIX命令及SHELL编程

    这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程基础与高级技巧,PDF格式,共30个文件。另有2个Word文档。包内文件清单如下: 01_Shell-文件安全与权限.PDF 02_Shell-使用find和xargs.PDF 03_Shell-...

    Linux Shell编程从初学到精通 第2版

    第1章 Shell脚本编程概述 1 第2章 Linux文件系统和文本编辑器 12 第3章 正则表达式 43 第4章 sed命令和awk编程 64 第5章 文件的排序、合并和分割 105 第6章 变量和引用 133 ...第17章 bash Shell编程范例 420

    Linux Shell编程1/3

    Linux Shell编程经典著作:&lt;br&gt;第一部分SHELL&lt;br&gt;|_文件安全与权限&lt;br&gt;|_使用find和xargs&lt;br&gt;|_后台执行命令&lt;br&gt;|_文件名置换&lt;br&gt;|_shell输入与输出&lt;br&gt;|_命令执行顺序&lt;br&gt;第二部分文本过滤&lt;br&gt;|_正则表达式介绍&lt;br&gt;...

    LINUX与UNIX SHELL编程指南

    LINUX与UNIX SHELL编程指南

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    Unix Shell Shell编程

    6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书

    shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程.rar

    shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程

    Shell编程

    Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程Shell编程

    shell编程个人笔记

    shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人...

    Linux操作系统Shell编程

    经典Linux和unix的Shell编程,按照模板练习即可快速提高。

Global site tag (gtag.js) - Google Analytics