微信公众号:51 码农网
专业编程问答社区
www.51manong.com
1. 将脚本内容标准输出和标准错误都重定向到一个日志文件
[root@ky35z 51mn]# ./51test.sh > 51mn.txt 2>&1
2. 查看该脚本对于的进程 id,进入 /proc/pid/fd 目录中
[root@ky35z 51mn]# ps -ef | grep 51test.sh
root 17288 16941 0 13:14 pts/1 00:00:00 /bin/bash ./51test.sh
root 17408 17315 0 13:14 pts/2 00:00:00 grep --color=auto 51test.sh
[root@ky35z 51mn]# cd /proc/17288/fd
3. 查看 51test.sh 进程描述符情况
[root@ky35z fd]# ls -al
total 0
dr-x------ 2 root root 0 Oct 22 13:14 .
dr-xr-xr-x 9 root root 0 Oct 22 13:14 ..
lrwx------ 1 root root 64 Oct 22 13:14 0 -> /dev/pts/1
l-wx------ 1 root root 64 Oct 22 13:14 1 -> /51mn/51mn.txt
l-wx------ 1 root root 64 Oct 22 13:14 2 -> /51mn/51mn.txt
lr-x------ 1 root root 64 Oct 22 13:14 255 -> /51mn/51test.sh
0- 标准输入,1- 标准输出,2- 标准错误。可以看到标准输出和标准错误都输出到了日志文件 51mn.txt 中。2>&1 表明将文件描述 2(标准错误输出)的内容重定向到文件描述符 1(标准输出),在前面我们知道,51test.sh >51mn.txt 又将文件描述符 1 的内容重定向到了文件 51mn.txt,那么最终标准错误也会重定向到 51mn.txt。