私は理解できません。いくつかのチュートリアルでは、人々がこのような記述子を使用するのを見ました(出力とエラー用)。
command 1> /dev/null
command 2> /dev/null
しかし、なぜこのようなことをするのでしょうか?画面やファイルでは出力を見ることはできません。消えたばかりです。コマンドなどをテストしますか?
ベストアンサー1
時には出力を見たくない場合もあります。多くのツールはstdoutまたはstderrで「無駄な」コンテンツをたくさん印刷し、時にはツールが出力をリダイレクトするような-q/--quite
機能をサポートしていない場合は無視したい場合があります。/dev/null
ツールの主な機能が何かを印刷するものではない場合、成功または失敗にのみ興味がある可能性があり、それに戻りコードを使用します(特にスクリプトでは)。
たとえば、特定のツールがインストールされていることを確認したいとします。tool --version
あるいは、同じことを確認したいかもしれませんが、which tool
ツールのバージョンやパスにはあまり興味がなく、ツールが利用可能で戻りコードだけで十分です。たとえば、ユーザーに必要なすべての依存関係があることを確認したいスクリプトで
$ which xyz >/dev/null 2>&1 || echo "you need to install xyz to proceed"
you need to install xyz to proceed
より良く見える
$ which xyz || echo "you need to install xyz to proceed"
/usr/bin/which: no xyz in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/vtrefny/.local/bin:/home/vtrefny/bin)
you need to install xyz to proceed