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文件:标准错误输出(异常错误)