linux中的標准輸出和輸入


===============1.有些人經常問我這個問題問題===========

經常在腳本里面看到這個    2>&1     表示什么意思啊?

 

==============2.理論==========================

在linux中,每個進程都會有三個文件,並且這三個文件會進行重定向處理:

/dev/stdin          ----->/proc/self/fd/0             //表示標准輸入,即鍵盤輸入

/dev/stdout        ----->/proc/self/fd/1     //表示標准輸出,即顯示屏,屏幕

/dev/stderr         ---->  /proc/self/fd/2           //表示標准錯誤輸出,有些腳本運行時會報錯,就會輸入到這。

 你看到的2>&1中的數字就是上面重定向后的數字。

0: 表示鍵盤輸入

1:將信息輸入到屏幕(一般linux命令都是默認為1)

2:將信息輸入到錯誤輸出

===================3.舉個栗子====================

在終端中寫一個sh文件

>>>>>>>>>>>>>>

$cat  demo.sh

#!/bash/bin

xxxx

date

<<<<<<<<<<<<<<

執行這個sh文件,並將輸出到demo.log中

 ./demo.sh > demo.log
./demo.sh: line 2: xxxx: command not found

由於xxxx不是linux命令會報錯,並且將錯誤信息輸出到屏幕(標准輸出),而date是linux

命令,會正確輸出,並將正確的信息輸出到demo.log文件中

cat demo.log
Sat Mar  5 09:49:11 HKT 2016

==============4.再回頭看最開始的問題============

2>&1  意思就很明了了,就是講執行linux命令時的錯誤信息也輸出到屏幕上。

 ./demo.sh 2>&1
./demo.sh: line 2: xxxx: command not found
Sat Mar  5 09:57:09 HKT 2016

 

===============收工======================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM