bash中 2 1 的解釋

2021-08-09 18:24:01 字數 929 閱讀 4848

1、首先,bash中0,1,2三個數字分別代表stdin_fileno、stdout_fileno、stderr_fileno,即標準輸入(一般是鍵盤),標準輸出(一般是顯示屏,準確的說是使用者終端控制台),標準錯誤(出錯資訊輸出)。

2、輸入輸出可以重定向,所謂重定向輸入就是在命令中指定具體的輸入**,譬如 cat < test.c 將test.c重定向為cat命令的輸入源。輸出重定向是指定具體的輸出目標以替換預設的標準輸出,譬如ls > 1.txt將ls的結果從標準輸出重定向為1.txt文字。有時候會看到如 ls >> 1.txt這類的寫法,> 和 >> 的區別在於:> 用於新建而》用於追加。

即ls > 1.txt會新建乙個1.txt檔案並且將ls的內容輸出到新建的1.txt中,而ls >> 1.txt則用在1.txt已經存在,而我們只是想將ls的內容追加到1.txt文字中的時候。

對了,你可以使用我們上面講到的輸出重定向。思路有了,怎麼寫呢? 非常直觀的想法就是2>1(將2重定向到1嘛),行不行呢?試一試就知道了。我們進行以下測試步驟:
1)mkdir test && cd test ; 建立test資料夾並進入test目錄

2)touch a.txt b.c c ; 建立a.txt b.c c 三個檔案

4)ls 執行3之後再次ls,則會看到test資料夾中多了乙個檔案1

5)cat 1 ; 檢視檔案1的內容,實際結果為:1 a.txt b.c c 可見步驟3中 ls > 1並不是將ls的結果重定向為標準輸出,而是將結果重定向到了乙個檔案1中。即1在此處不被解釋為stdout_fileno,而是檔案1。

4、到了此時,你應該也能猜到2>&1的用意了。不錯,2>&1就是用來將標準錯誤2重定向到標準輸出1中的。此處1前面的&就是為了讓bash將1解釋成標準輸出而不是檔案1。至於最後乙個&,則是讓bash在後台執行。

bash中 2 1 的詳細解釋

1 首先,bash中0,1,2三個數字分別代表stdin fileno stdout fileno stderr fileno,即標準輸入 一般是鍵盤 標準輸出 一般是顯示屏,準確的說是使用者終端控制台 標準錯誤 出錯資訊輸出 01 2標準輸入 標準輸出 標準錯誤 2 輸入輸出可以重定向,所謂重定向...

linux Shell的2 1的解釋

關於2 1 的含義 含義 將標準錯誤輸出重定向到標準輸出符號 是乙個整體,不可分開,分開後就不是上述含義了。比如有些人可能會這麼想 2是標準錯誤輸入,1是標準輸出,是重定向符號,那麼 將標準錯誤輸出重定向到標準輸出 是不是就應該寫成 2 1 就行了?是這樣嗎?如果是嘗試過,你就知道2 1的寫法其實是...

21 直譯器模式

一 直譯器模式 直譯器模式定義如下 給定一種語言,定義它的文法表示,並定義乙個直譯器,該直譯器使用該表示來解釋語言中的句子。典型的直譯器模式中會有終結符和非終結符之說,語法也根據兩種終結符,決定語句最終含義。模擬吉他示例 要開發乙個自動識別譜子的結他模擬器,達到錄入譜即可按照譜發聲的效果。除了發聲裝...