1. 程式人生 > >linux 標準輸出、標準錯誤輸出、以及shell小技巧

linux 標準輸出、標準錯誤輸出、以及shell小技巧

1.Linux常用的有:

1)  標準輸入 stdin  程式碼為0,使用< 或<<

2)  標準輸出 stdout 程式碼為1,使用> 或 >> ,這裡把1給省略了,

3)  標準錯誤輸出 stderr程式碼為2,使用 2> 或2>>

其中:標準輸出指的是『命令執行所回傳的正確的資訊』,而標準錯誤輸出可理解為『命令執行失敗後,所回傳的錯誤資訊』

2.如果想讓資訊都不展示,則將輸入到黑洞垃圾桶/dev/null,不輸出錯誤資訊2>/dev/null

3.標準輸出標準錯誤輸出都放在同一個檔案,就這樣做:

1)都重定向到標準輸出通道&1:2>&1

,都重定向到標準錯誤輸出通道1>&2,可以簡寫為>&2,這裡的&可以理解成”the same as”

 z

4.小小tips

為啥經常在linux的shell指令碼會看見echo “hello” >&2,這樣的寫法?

這是linux shell指令碼的一個小技巧,unix有一個哲學,“Rule of silence”,一個好指令碼的輸出不應該太囉嗦,不然不利於和其他程式協作,但很多情況我們又希望看到指令碼的執行進度。處理這個問題的一個方法就是把進度寫到stderr中,這樣既不會影響標準輸出、和其他程式的協作,同時我們在螢幕又可以看到指令碼的相關進度資訊,如:

備註我們有a.txt 但是沒有b.txt檔案,在螢幕列印的日誌如下,實在不懂,就自己列印試試。

ls a.txt b.txt >&2

ls: b.txt: No such file or directory

a.      Txt

很多不是指令碼的應用也會採用這種方式,比如執行java -version,輸出的資訊是到stderr,而不是stdout

另外提醒一下,這種技巧主要用在Bourne系列的Shell,在csh或者tcsh裡是不能工作的。

相關推薦

linux 標準輸出標準錯誤輸出以及shell技巧

1.Linux常用的有: 1)  標準輸入 stdin  程式碼為0,使用< 或<< 2)  標準輸出 stdout 程式碼為1,使用> 或 >> ,這裡把1給省略了, 3)  標準錯誤輸出 stderr程式碼為2,使用 2> 或2

2018-05-22 CSS 左右布局左中右布局以及一些技巧

add www. 分享 適應 line -o pad 默認 改變 1、左右布局 如果有以下html結構,設置左右兩欄布局 <div class="parent"> <div class="leftChild"></div> <

框架基礎:ajax設計方案(六)--- 全局配置請求格式拓展和優化請求二進制類型瀏覽器錯誤搜集以及npm打包發布

rri seve win 最大 regexp isempty lee 出現問題 hub 距離上一次博客大概好多好多時間了,感覺再不搞點東西出來,感覺就廢了的感覺。這段時間回老家學習駕照,修養,然後7月底來上海求職(面了4家,拿了3家office),然後入職同程旅遊,項目趕進

Ubuntu 17.10 用 apt 搭建 lamp 環境安裝 phpmyadminredis 及擴展mysql 擴展開啟錯誤提示配置虛擬主機

www data 4.2 pass ech span grace 參考 配置文件 最終環境: Ubuntu17.10、Apache2.4.27、MySQL5.7.20、PHP7.1 1. 安裝 apache 官方源有,直接安裝: sudo apt-get

SpringBoot系列五:SpringBoot錯誤處理(數據驗證處理錯誤全局異常)

lin container sub exce asn valid 程序 validator iterator 1、概念: SpringBoot 錯誤處理 2、具體內容 在之前的程序裏面如果一旦出現了錯誤之後就會出現一堆的大白板,這個白板會有一些錯誤信息(雖然這些錯誤信息你可

SpringBoot系列五:SpringBoot錯誤處理(資料驗證處理錯誤全域性異常)

1、概念: SpringBoot 錯誤處理 2、具體內容 在之前的程式裡面如果一旦出現了錯誤之後就會出現一堆的大白板,這個白板會有一些錯誤資訊(雖然這些錯誤資訊你可能 看不懂,但是這些錯誤資訊依然要告訴給使用者)。在 SpringBoot 裡面針對於錯誤的處理一共提供有

C# WebBrowser控制元件禁用超連結轉向指令碼錯誤提示預設右鍵選單和快捷鍵

1. 禁用錯誤指令碼提示 將 WebBrowser控制元件的 ScriptErrorsSuppressed 設為 true 2. 禁用右鍵選單: 將 WebBrowser 的 IsWebBrowserContextMenuEnabled 設為 false 3. 禁用快

Linux及FL2440使用過程遇到的各種問題和技巧

變化 AR tro 退出 details 服務 level bootstrap 標準輸出 原文鏈接:http://www.cnblogs.com/NickQ/p/8900474.html ## Linux及FL2440使用過程遇到的各種問題和小技巧 關於移植linux根文

兩個linux shell技巧,助你提高敲命令效率!

技巧一.sudo! 1.在linux命令列敲命令時,你是不是也碰到過這種情況:敲了一長串命令,瀟灑的一回車,結果發現Permission denied。   當你意識到需要在行首加一個sudo,用root使用者執行該命令,這時你會怎麼做?通常的做法可能是這樣的: 1.按↑重新顯示之前的命

Linux Bash通過上下鍵快速查詢歷史命令的技巧

我們知道在 bash 裡,可以通過 “上下” 鍵來瀏覽最近執行過的命令歷史紀錄(history),我們也知道如果系統的歷史記錄太多的話,可以通過 ctrl+r 來查詢命令或者通過 history 命令來瀏覽歷史命令。 還有一種神奇的辦法可以更準確、有效的在歷史命令紀錄中查詢自己想要的命令: 1. 首

Linux重定向及標準輸入輸出錯誤相關

 通常情況,每個 Unix 程式在啟動時都會開啟三個流,一個用於輸入,一個用於輸出,一個用於列印診斷或錯誤訊息。它們分別被做:標準輸入,標準輸出,標準錯誤。 標準輸入是程式可以讀取其輸入的位置

Linux程式設計》第三章(標準IO庫格式化輸入輸出檔案和目錄的維護掃描目錄)

標準IO庫 在啟動程式時,有三個檔案流是自動開啟的,分別是stdin,stdout,stderr。 1. fopen函式:用於檔案和終端的輸入和輸出。函式原型如下: #include <stdio.h> FILE *fopen(const char* f

2.8 補充:標準輸入輸出錯誤輸出

輸入輸出重定向 輸出 錯誤 一個 是把 效果 null 例如 實現 Linux Shell 環境中支持輸入輸出重定向,用符號"<"和">"來表示。0、1和2分別表示標準輸入、標準輸出和標準錯誤信息輸出,可以用來指定需要重定向的標準輸入或輸出,比如 2>a.

標準輸入輸出錯誤輸出重定向標準輸出

I/O重定向詳解及應用例項 1、 基本概念(這是理解後面的知識的前提,請務必理解) a、 I/O重定向通常與 FD有關,shell的FD通常為10個,即 0~9; b、 常用FD有3個,為0(stdin,標準輸入)、1(stdout,標準輸出)、2(stderr,標準錯誤輸出),預設與keyboar

標準輸入輸出錯誤輸出

 當我們在s h e l l中執行命令的時候,每個程序都和三個開啟的檔案相聯絡,並使用檔案描述符來引用這些檔案。由於檔案描述符不容易記憶, s h e l l同時也給出了相應的檔名。  下面就是這些檔案描述符及它們通常所對應的檔名: 檔案檔案描述符  輸入檔案—標準輸入std

linux系統shell中重定向 標準輸出 錯誤輸出 >/dev/null 2>&1

經常shell指令碼中,會看到: 仔細體會下面例子。 >/dev/null  2>&1 這句話的意思簡單理解為:標準輸出和錯誤輸出都不會輸出出來。 [email protected]:/tmp>date>1.txt >/de

javaSE (三十三)其他流(序列流記憶體輸出隨機訪問流物件操作流資料輸入輸出列印流標準輸入輸出properties)

1、序列流(SequenceInputStream ): 序列流主要的作用就是整合位元組輸入流,將很多的進口整合成一個 這裡著重講一下多於兩個輸入流的整合: 步驟: 建立三個輸入流 建立vector集合存入這些輸入流 將這些輸入流變成列舉型別 Vector.e

linux標準輸入輸出錯誤輸出

Linux Shell 環境中支援輸入輸出重定向,用符號"<"和">"來表示。0、1和2分別表示標準輸入、標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出,比如 2>a.txt 表示將錯誤資訊輸出到檔案a.txt中。 同時,還可以在這三

20180119:緩衝流轉換流標準輸入輸出

今天重點學習瞭解了緩衝流和轉換流的內容,標準輸入輸出流並不複雜,較為容易理解 一、緩衝流 緩衝流是處理流的一種,建立在相應的節點流之上,對讀寫的資料提供了緩衝的功能,作用就是為了提高讀寫的效率,由於普通的輸入流在讀取檔案時效率較低,建立自定義的緩衝區也造成了記憶體的浪費;同

Linux 標準輸出錯誤輸出重定向到檔案

1.想要把make輸出的全部資訊,輸出到某個檔案中,最常見的辦法就是:make xxx > build_output.txt此時預設情況是沒有改變2=stderr的輸出方式,還是螢幕,所以,如果有錯誤資訊,還是可以在螢幕上看到的。2.只需要把make輸出中的錯誤(及警