Pocket

Hi.Adachinです。

 

本日は標準出力と標準エラー出力についてです。

 

ちょいと先輩に突っ込まれて&パニクったのでブログします。

しかも毎回忘れがちなので自分なりにまとめやした( ー`дー´)キリッ

これを脳に叩き込めばlinux力あるね!と言われるので頑張りましょう(・∀・)

ちなみにシェルによって違うので今回はbashのみのまとめとなります。


■標準出力とは

画面に出力する文字列のこと(実行結果)


■標準エラー出力とは

シェルで実行するとエラーメッセージが出ること


■標準エラー出力として出力する場合

1.その前にファイルディスクリプタとは

0:標準入力(stdin)1:標準出力(stdout)2:標準エラー出力(stderr)

2.あとリダイレクト[>]とは

を!覚えましょう!

で、標準エラー出力として出力する場合は

・1>&2とは

1の出力先を2の出力先と同じものに設定するという意味
例だと
「adachin>&dachin」は「adachin の出力先をdachinの出力先と同じものに設定する」


■標準エラー出力のみ出力する

ややこしいですが、さっきのは標準出力を標準エラー出力として出力する場合です。

今回は標準出力は関係ありません。

※ちなみに
/dev/nullはunixのスペシャルファイルで空ファイル


■いろいろな例

・リダイレクトなし

標準出力 : 画面
標準エラー出力 : 画面

・標準出力のみファイルにリダイレクトする場合

標準出力 : file
標準エラー出力 : 画面

・標準出力と標準エラー出力2つともファイルにリダイレクトする場合

・流れ
標準出力 : file
標準エラー出力 : file

標準出力 : file
標準エラー出力 : 画面

↓ 2>&1が処理されるため2の出力先を1の出力先と同じに設定

標準出力 : file
標準エラー出力 : file


■まとめ

ここらへんを理解出来ていれば

スクリプト作るときに何も困らないはず!(・∀・)b

参考:http://qiita.com/yukotan/items/749de95af895e23a2114
http://www.creatology.jp/unix/outin.html

Pocket


adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください