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。
分享到:
相关推荐
20、Shell编程之学习心得分享及拓展.mp4 19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量...
Linux Shell编程是Linux系统管理与自动化任务的核心技术之一,它主要指的是使用Shell脚本来执行一系列命令,实现自动化操作。在Linux环境中,Bash(Bourne-Again SHell)是最常用的Shell,也是许多Linux发行版的默认...
- **标准错误输出(stderr)**:用于错误信息,可以使用`2>`单独重定向。 **4. SHELL脚本执行控制** - **权限**:使用`chmod +x script.sh`赋予脚本执行权限。 - **运行方式**:可以直接`./script.sh`运行,或者...
1. **基本命令与操作**:在Shell编程中,我们首先会接触到各种基本命令,如`ls`用于列出目录内容,`cd`用于切换目录,`touch`创建文件,`rm`删除文件或目录,`mv`移动或重命名文件,以及`cp`复制文件。掌握这些基础...
**UNIX SHELL编程** 在计算机领域,UNIX操作系统以其强大的命令行接口和脚本编写能力而闻名,其中SHELL是用户与系统交互的核心。SHELL不仅仅是一个命令解释器,它还是一个编程语言,允许用户通过编写脚本来自动化...
Linux Shell编程经典著作:<br>第一部分SHELL<br>|_文件安全与权限<br>|_使用find和xargs<br>|_后台执行命令<br>|_文件名置换<br>|_shell输入与输出<br>|_命令执行顺序<br>第二部分文本过滤<br>|_正则表达式介绍<br>...
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环境和Shell的执行、熟悉Shell的基本语法和语句、了解Shell程序的调试方法。 在该实验...
《Linux与Unix Shell编程指南》是一本深入探讨Shell编程技术的书籍,主要针对那些希望提升在Linux和Unix操作系统中使用Shell脚本能力的读者。Shell是Linux和Unix系统中的一个命令解释器,它允许用户通过命令行接口...
7. **正则表达式**:在Shell编程中,正则表达式用于模式匹配和数据处理,是必备技能之一。 8. **函数和脚本参数**:学习如何创建自定义函数,以及如何处理脚本接收的命令行参数。 9. **错误处理与调试**:理解错误...
2.知名Linux专家MarkSobell编写的这《Linux命令、编辑器与Shell编程》,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。 3.一本值得每一位Linux管理人员、开发...
【标题】"Shell编程ppt[C++教程网cppcourse[1].com].zip" 提供的是一份关于Linux Shell编程的教程资源,源自知名的C++教程网站cppcourse[1].com。这份压缩包内包含了深入学习Shell编程的重要内容,对于想要在Linux...
在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的...
Linux Shell编程基础是掌握Linux系统管理和自动化任务执行的关键技能之一。本文主要介绍如何开始编写Shell脚本,如何处理注释,以及如何执行脚本。同时,我们还将深入探讨Bash中的各种变量,包括环境变量、位置变量...
一直以来,shell编程是系统管理员必备的高级技能,通过学习shell编程,可以让计算机系统完成那些繁重并且琐碎的管理任务,从而可以节约大量的工作时间。本书通过大量的应用实例,以循序渐进的方式,由浅入深地逐步...
13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...
linux Shell 编程视频,适合初学者
《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...
Shell编程是UNIX和Linux环境中的一种重要技能,它允许用户通过编写简短的命令脚本来自动化日常任务,提高生产力。 UNIX系统由贝尔实验室开发,后来发展出多种衍生版本,包括FreeBSD、OpenBSD等。Linux作为开源的类...
Shell编程的灵活性在于它可以结合Unix命令、管道(|)、重定向(< >)和条件测试,创建出复杂的自动化流程。这种能力使得Shell成为系统管理员和开发者的有力工具,尤其在需要快速解决问题或实现自动化任务时。 总的...