`
#rethink#
  • 浏览: 47445 次
  • 性别: 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 

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。

 

转载自:http://tory320.iteye.com/blog/490856 

分享到:
评论

相关推荐

    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扩张编程工具的过程中深切体会到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系统中的核心技术,它允许用户通过命令行...

    Linux与UNIX Shell编程指南.pdf

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

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

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

    Linux Shell编程&常用shell命令

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

    UNIX命令及SHELL编程

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

    shell编程题目练习

    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 Shell编程

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

    shell demo及编程pdf

    2. **命令行参数**:Shell脚本可以接收命令行参数,通过`$1`, `$2`等来访问。`$0`表示脚本本身的名字。 3. **流程控制**:包括条件语句(`if...then...else...fi`)、循环语句(`for`, `while`, `until`)以及案例...

    Shell编程中文手册.pdf

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

    shell编程从入门到精通

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

    2本linux shell 编程chm

    Linux Shell编程是Linux系统管理与自动化任务的核心技术之一,它主要指的是使用Shell脚本来执行一系列命令,实现自动化操作。在Linux环境中,Bash(Bourne-Again SHell)是最常用的Shell,也是许多Linux发行版的默认...

    shell编程个人笔记

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

    Windows Shell 编程指南与实例

    《Windows Shell 编程指南与实例》是一本深入探讨Windows操作系统壳层编程技术的专业书籍。在Windows系统中,Shell指的是用户界面,它为用户提供与操作系统交互的环境,包括桌面、开始菜单、快捷方式等。Shell编程则...

    LinuxShell编程基础教程.pdf

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

    Windows Shell编程例子1

    这个"Windows Shell编程例子1"聚焦于菜单扩展,这是一个常见的Shell编程应用场景,旨在为用户的文件资源管理器或者右键菜单增加自定义功能。下面我们将深入探讨Windows Shell编程以及如何实现菜单扩展。 首先,理解...

    shell编程入门教程

    shell 编程入门教程 shell 编程是 Linux 操作系统中的一个重要组件,它允许用户输入命令并将其执行, shell 编程有两种执行命令的方式:交互式(Interactive)和批处理(Batch)。在 shell 编程中,有变量、流程...

Global site tag (gtag.js) - Google Analytics