版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
内容:记录以前实习的时候,时常看到同事写的 " 2>&1 " ,究竟是什么呢?
意义:
作用:表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出) 1前面加&的原因:当没有&时,1会被认为是一个普通的文件,有&表示重定向的目标是一个文件描述符
用法:
./XX> log.txt2>&1 目的:将XX的运行输出重定向到log.txt文件中,同时将标准错误也重定向到log.txt文件中。写入文件中 便于分析,且容易对文件使用各种过滤命令得到你想要的内容。如果输出到终端,那么消息多的时候 是难以过滤出有用信息的
等价写法:
./XX>& log.txt ./XX&> log.txt
原理:
1、第一个> 将标准输出重定向到log.txt中2、第二个> 将异常输出重定向到1号描述符定向处,也就一样指向了log.txt
注意:
不可以写成:./XX2>&1>file 原因:2>&1 先将异常输出指向了标准输出,然而此时标准输出还是在终端。后面指向>file 后标准输出 才被重定向到file,但标准错误仍然保持在终端。
点赞
打赏
打赏
不才~
你的鼓励将是我创作的最大动力
C币余额
2C币4C币6C币10C币20C币50C币
确定
举报
一键三连
#!/bin/bash cat aa.txt > /tmp/error 2>&1 #使用 " 2>&1" 把标准错误 stderr 重定向到标准输出 stdout ; echo $? #捕获上一条命令的输出 (if 0 正常 else 错误) ls -l > /tmp/log echo $? 文件/tmp/log中。 # cat /tmp/error cat: aa.txt: No such file or directory ...