Linux中的错误重定向你真的懂吗
在很多定时任务里、shell里我们往往能看到 "2>&1",却不知道这背后的原理。
举个例子:
* 1 * * * test.sh > /dev/null 2>&1
这里的”2>&1“的意思是把标准错误重定向到标准输出。
0:代表标准输入 1:代表标准输出 2:代表标准错误
上面的例子"2>&1"已经知道是将标准错误重定向到标准输出,而test.sh的标准输出就是/dev/null,所以这条语句的结果(标准输出、标准错误)都会打到/dev/null。 用c来表示可以更加清楚细节:
int fd = open("/dev/null", "w+");
dup2(fd, 1); # 将标准输出重定向至/dev/null
dup2(1, 2); # 将标准错误重定向至标准输出
我们调换一下/dev/null和2>&1的位置:
* 1 * * * test.sh 2>&1 > /dev/null
这里表示先将标准错误重定向至标准输出,再将标准输出重定向至/dev/null。这样的结果就是还能看见标准错误 用c来表示下细节:
int fd = open("/dev/null", "w+");
dup2(1, 2); # 将标准错误重定向至标准输出
dup2(fd, 1); # 将标准输出重定向至/dev/null
可能看了上面的例子还是一脸懵圈,我举几个例子:
# 假设table不存在
ls table 2>&1
# 报错,并在标准输出(终端)展示
ls table > /dev/null 2>&1
# 报错,标准错误重定向到标准输出。而标准输出被/dev/null给占据了,所以错误进了/dev/null
ls table 2>&1 > /dev/null
# 报错,标准输出指向/dev/null。而标准错误任然重定向至标准输出,所以能在终端看到错误输出
来源:http://www.1994july.club/?cat=386
Linux中的错误重定向你真的懂吗的更多相关文章
- Linux中的数据重定向
重定向即指:将数据传送输出到别的地方,如设备.文件等等.那就涉及到将什么数据传送到什么地方的问题. 在linux中命令执行的起源和结果说起,看下图: Standard input和Standard e ...
- linux中输入输出和重定向问题
输入输出解释 当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件.但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输 ...
- Linux中的输出重定向
标准输入输出: 键盘 /dev/stdin 0 标准输入 显示器 /dev/stdout 1 标准输出 显示器 /dev/st ...
- Linux中的输入重定向,变量
1 :分号 格式:命令1:命令2;命令3 说明:命令之间用分号隔开是顺序执行,命令之间没有任何逻辑关系 2 && 逻辑与 格式:命令1 && 命令2 说明:命令1正 ...
- 在linux中获取错误返回信息 &…
#include // void perror(const char *msg); #include // char *strerror(int errnum); #include //errno e ...
- linux中链接错误的时候,快速找到缺失的符号在哪个库中
编译一个opencv程序,链接的时候出现大量的如下错误: /home/admin/opencv/opencv-master/modules/imgproc/src/color_lab.cpp:23: ...
- linux中nginx重定向方法总结
linux中nginx 301重定向跳转方法总结 第一种情况:访问aaaaaaa站定向到bbbbbbbbbbb站 复制代码代码如下: server { server_naaaaaaame www.aa ...
- linux中的输入从定向和输出重定向
linux的标准的输入和输出为如下 我们在 linux中执行命令时,命令默认输出到console中,很多时候我们需要将命令输出到其他设备上如最常见的就文件中去,或者重文件中输入.那这时候就需要用到li ...
- <实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向
[root@localhost~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就 ...
随机推荐
- 解决Spring Mvc中接受参数绑定重名的方法
html页面 <form method='post' action='url'> 用户名 <input type='text' name='name'> 用户id <in ...
- springmvc无法访问JS,CSS等文件
配置好web.xml中的dispatchservlet后,js,css,都不能正常显示 web.xml配置文件 <!-- 核心控制器 --> <servlet> <ser ...
- cf 1241 D. Sequence Sorting(思维)
题意: 一个序列有n个数,有一种操作,你可以选一个数x,使这个序列中等于x的数都移到序列头或尾. 问最少几次操作后,可以使这个序列非降序. 思路: (以下说bi移动到哪里,其实就是指a1……an中等于 ...
- UVA - 1615 Highway(高速公路)(贪心+区间选点)
题意:给定平面上n(n<=105)个点和一个值D,要求在x轴上选出尽量少的点,使得对于给定的每个点,都有一个选出的点离它的欧几里德距离不超过D. 分析: 1.根据D可以算出每个点在x轴上的可选区 ...
- hdu 3388 Coprime
第一个容斥的题,感觉这东西好神啊.于是扒了一发题解2333 首先想对于[1,x]内有多少与n,m都互质的数,显然x是存在单调性的,所以可以二分一下. 那么互质的数的求法,就是x-存在n,m一个质因数的 ...
- android——TextView默认文字开发时显示运行时隐藏
根布局添加属性: xmlns:tools="http://schemas.android.com/tools" textview添加属性: tools:text="默认文 ...
- 十六、CI框架之数据库操作get用法
一.使用数据库的Get方法读取内容,如下代码: 二.数据库如下: 二.效果如下: 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦, ...
- php和js的小区别
1.今天看了下php的api感觉还可以,不是很难,可能没看到深入的地方, (1)和js很相似 目前感觉它和js的最大区别 js的 点 被替换成 -> function setCate($pa ...
- Unity3d中渲染到RenderTexture的原理,几种方式以及一些问题
超级搬运工 http://blog.csdn.net/leonwei/article/details/54972653 ---------------------------------------- ...
- (排序)P1177 【模板】快速排序
题解: 这道题用传统快排(如下所示)的结果就是最后三个点TLE: 如果永远取第一个元素作为枢轴的话,在数组已经有序的情况下每次划分都将得到最坏的结果,时间复杂度退化为O(n^2).因为其中一个子序列每 ...