道者编程

shell 中2>&1 的含义

1:几个数字含义:

/dev/null  表示空设备文件
0  表示stdin标准输入
1  表示stdout标准输出
2  表示stderr标准错误

2:> 为重定向符号。

3:2>&1 

是把错误输出(合并)到标准输出流中(也就是标准错误和标准输出合并到一个地方)

4:举个例子:

新建data.sh文件:

#!/bin/sh
g
date

赋予chmod +x 权限,然后执行 ./data.sh

因为g命令不存在,这时候会报错,错误信息和正常输出信息都在屏幕上。


再执行:

 ./data.sh > /usr/local/data.log 2>&1

屏幕上啥都没有,因为我们加了 2>&1 这个参数,把错误信息和正常信息都重定向到data.log文件中去了,打开看下


&为分隔符,后面加数字为文件含义,如果不加&

 ./data.sh > /usr/local/data.log 2>1
那么除了生成一个data.log文件外,还会生成一个名称1的文件,其中data.log中为标准输出(正常输出);1文件:标准错误输出(异常错误)


最新评论:
我要评论:

看不清楚