`
tory320
  • 浏览: 34558 次
  • 性别: 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编程从入门到精通视频教程.txt

    20、Shell编程之学习心得分享及拓展.mp4 19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量...

    2本linux shell 编程chm

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

    人人都能学会的企业SHELL编程 运维开发必备

    - **标准错误输出(stderr)**:用于错误信息,可以使用`2&gt;`单独重定向。 **4. SHELL脚本执行控制** - **权限**:使用`chmod +x script.sh`赋予脚本执行权限。 - **运行方式**:可以直接`./script.sh`运行,或者...

    linux shell编程手册

    1. **基本命令与操作**:在Shell编程中,我们首先会接触到各种基本命令,如`ls`用于列出目录内容,`cd`用于切换目录,`touch`创建文件,`rm`删除文件或目录,`mv`移动或重命名文件,以及`cp`复制文件。掌握这些基础...

    UNIX SHELL编程.rar

    **UNIX SHELL编程** 在计算机领域,UNIX操作系统以其强大的命令行接口和脚本编写能力而闻名,其中SHELL是用户与系统交互的核心。SHELL不仅仅是一个命令解释器,它还是一个编程语言,允许用户通过编写脚本来自动化...

    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

    linux编程SHELL编程实验报告

    "Linux编程SHELL编程实验报告" Linux编程SHELL编程实验报告是Linux编程课程设计报告的一部分,该报告的目的是为了熟悉Shell环境和Shell的执行、熟悉Shell的基本语法和语句、了解Shell程序的调试方法。 在该实验...

    Linux与Unix Shell编程指南pdf

    《Linux与Unix Shell编程指南》是一本深入探讨Shell编程技术的书籍,主要针对那些希望提升在Linux和Unix操作系统中使用Shell脚本能力的读者。Shell是Linux和Unix系统中的一个命令解释器,它允许用户通过命令行接口...

    不错的Shell编程的PPT.zip_Shell编程 ppt_WINDOWS 编程_ppt_programming ppt_sh

    7. **正则表达式**:在Shell编程中,正则表达式用于模式匹配和数据处理,是必备技能之一。 8. **函数和脚本参数**:学习如何创建自定义函数,以及如何处理脚本接收的命令行参数。 9. **错误处理与调试**:理解错误...

    《LINUX命令、编辑器与SHELL编程》 MarkG.Sobell著

    2.知名Linux专家MarkSobell编写的这《Linux命令、编辑器与Shell编程》,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。 3.一本值得每一位Linux管理人员、开发...

    Shell编程ppt[C++教程网cppcourse[1].com].zip

    【标题】"Shell编程ppt[C++教程网cppcourse[1].com].zip" 提供的是一份关于Linux Shell编程的教程资源,源自知名的C++教程网站cppcourse[1].com。这份压缩包内包含了深入学习Shell编程的重要内容,对于想要在Linux...

    Windows Shell 编程.pdf

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

    Linux Shell编程基础

    Linux Shell编程基础是掌握Linux系统管理和自动化任务执行的关键技能之一。本文主要介绍如何开始编写Shell脚本,如何处理注释,以及如何执行脚本。同时,我们还将深入探讨Bash中的各种变量,包括环境变量、位置变量...

    Linux Shell编程艺术.7z.002

    一直以来,shell编程是系统管理员必备的高级技能,通过学习shell编程,可以让计算机系统完成那些繁重并且琐碎的管理任务,从而可以节约大量的工作时间。本书通过大量的应用实例,以循序渐进的方式,由浅入深地逐步...

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

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

    linux Shell 编程视频10

    linux Shell 编程视频,适合初学者

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

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

    UNIX.Shell 编程24学时教程[pdf]

    Shell编程是UNIX和Linux环境中的一种重要技能,它允许用户通过编写简短的命令脚本来自动化日常任务,提高生产力。 UNIX系统由贝尔实验室开发,后来发展出多种衍生版本,包括FreeBSD、OpenBSD等。Linux作为开源的类...

    嵌入式shell编程

    Shell编程的灵活性在于它可以结合Unix命令、管道(|)、重定向(&lt; &gt;)和条件测试,创建出复杂的自动化流程。这种能力使得Shell成为系统管理员和开发者的有力工具,尤其在需要快速解决问题或实现自动化任务时。 总的...

Global site tag (gtag.js) - Google Analytics