【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误
生活随笔
收集整理的這篇文章主要介紹了
【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、标准输入、标准输出、标准错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【c++】22. STL容器的底层实现详
- 下一篇: 【Linux】22.当前运行的docke