shell重定向命令執行順序


重定向內容介紹 

一條shell命令的執行包含三個文件描述符:標准輸入(鍵盤等) stdin 0,標准正確輸出(屏幕等) stdout 1,標准錯誤輸出(屏幕等)stderr 2
 
通過重定向可以指定輸入的文件內容和輸出到的位置
 
 

 

符號 說明
< file 輸入重定向,將<后的file文件內容作為command執行前的輸入
> file 或1>file 輸出重定向,將標准正確輸出覆蓋到后面的file文件內
>> file或1>>file 輸出重定向,將標准正確輸出追加到后面的file文件內
2>file 輸出重定向,將標准錯誤輸出覆蓋到后面的file文件內
2>>file 輸出重定向,將標准錯誤輸出追加到后面的file文件內
&>file 或 >file 2>&1 輸出重定向,將標准正確輸出和標准錯誤輸出覆蓋到后面的file文件內
&>>file 或 >>file 2>&1 輸出重定向,將標准正確輸出和標准錯誤輸出追加到后面的file文件內

 

重定向執行順序

shell會按照;等分隔符將一串命令分成多個命令,替換命令中的變量后執行單條命令
 
shell單條命令,重定向部分的執行順序:先<,然后command,最后<和<<
第一步:先讀取<后的內容做為輸入,如果一條命令有多個<,會讀取最后一個<后的內容
<放在命令前后都可以,例如【< /etc/hosts cat】相當於【cat /etc/hosts】
 
第二步:執行command命令
第三步:如果有>或>>會將結果進行重定向,如果輸出重定向多個文件,只會將內容重定向到最后一個文件
例如 cat /etc/hosts > test1.txt >test2.txt
只有test2.txt會出現內容,test1.txt內容是空的
 
輸出重定向>和>>的位置放在哪里都可以,例如【> test.txt  cat /etc/hosts】,表示將/etc/hosts的內容輸入到test.txt中
 
 
參考文檔:


免責聲明!

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



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