欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误

发布时间:2025/3/21 113 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

输入输出重定向、2>&1、标准输入、标准输出、标准错误

https://zhuanlan.zhihu.com/p/47765176

./test.sh > log.txt 2>&1

每个程序在运行后,都会至少打开三个文件描述符,分别是
0:标准输入;
1:标准输出;
2:标准错误。

2>&1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出),为什么1前面需要&?当没有&时,1会被认为是一个普通的文件,有&表示重定向的目标不是一个文件,而是一个文件描述符。在前面我们知道,test.sh >log.txt又将文件描述符1的内容重定向到了文件log.txt,那么最终标准错误也会重定向到log.txt。

文件描述符fd:

ps -ef|grep test.sh #重新打开命令串口,使用ps命令找到test.sh的pid hyb 5270 4514 0 19:20 pts/7 00:00:00 /bin/bash ./test.sh hyb 5315 5282 0 19:20 pts/11 00:00:00 grep --color=auto test.sh

可以看到test.sh的pid为5270,进入到相关fd目录 /proc/5270/fd:

cd /proc/5270/fd #进程5270所有打开的文件描述符信息都在此 ls -l #列出目录下的内容0 -> /dev/pts/71 -> /dev/pts/72 -> /dev/pts/7255 -> /home/hyb/workspaces/shell/test.sh ### 要注意顺序,不要写成这样: ./test.sh 2>&1 >log.txt

总结

以上是生活随笔为你收集整理的【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。