`
tory320
  • 浏览: 34159 次
  • 性别: 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

    Windows Shell 编程.pdf

    在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的...

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

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

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

    《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...

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

    Shell编程是Linux/Unix操作系统中的一种重要工具,它允许用户通过命令行与系统进行交互,执行各种任务。本文将深入探讨Shell编程的基础知识,包括基本语法、常用的内置命令、条件语句、循环结构以及函数的使用,旨在...

    Linux与UNIX Shell编程指南.pdf

    "Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. 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 demo及编程pdf

    **Shell编程介绍** Shell编程是Linux/Unix操作系统中的一种脚本语言,用于自动化日常任务,交互式地控制操作系统,以及实现系统级别的程序间交互。它提供了命令行接口(CLI)来执行各种系统命令,使用户能够高效地...

    shell编程从入门到精通

    Shell编程是Linux和Unix系统中不可或缺的一部分,它是一种命令行解释器,同时也是脚本编程语言。通过Shell,用户可以高效地与操作系统交互,自动化日常任务,实现系统管理、...现在,就让我们开始这场Shell编程之旅吧!

    shell 1&gt;&2 2&gt;&1 &&gt;filename重定向的含义和区别

    ### Shell 重定向详解:“1&gt;&2”、“2&gt;&1”与“&&gt;filename”的含义及区别 在Shell脚本编程中,理解不同类型的重定向及其功能是非常重要的。本文将详细解析三种重定向操作——“1&gt;&2”、“2&gt;&1”以及“&&gt;filename”...

    UNIX命令及SHELL编程

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

    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;...

    Shell编程中文手册.pdf

    Shell 编程中文手册 本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell ...

    shell编程题目练习

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

    Unix Shell Shell编程

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

    Linux Shell编程&常用shell命令

    Linux Shell编程与常用Shell命令是Linux系统管理及自动化工作中的核心技能。Shell是Linux操作系统下的一种命令行解释器,它提供了用户与操作系统内核交互的界面。通过编写Shell脚本,用户可以自动化执行一系列任务,...

    LinuxShell编程基础教程.pdf

    Linux Shell 编程基础教程 本资源为 Linux Shell 编程基础教程,涵盖了 Linux Shell 编程的基础知识,包括语法基本介绍、变量、环境变量、Shell 命令和流程控制等。 一、语法基本介绍 在 Linux Shell 编程中,...

    Windows Shell 编程指南与实例

    Shell编程则允许开发者通过编写脚本或程序来自动化常见的系统任务,提高工作效率。 一、Windows Shell基础 Windows Shell编程的基础在于了解批处理(Batch)脚本和Windows Script Host (WSH)。批处理脚本是包含一...

    shell编程教程.chm

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

Global site tag (gtag.js) - Google Analytics