ただ違いを探してみると
2>&-
2>/dev/null
|&
&>/dev/null
>/dev/null 2>&1
tcsh
Bourneシェルではなくシェルへmksh
の移植性。
ベストアンサー1
背景:
- ㅏ番号1=標準出力(例:STDOUT)
- ㅏ2回=標準エラー(例:STDERR)
- 数値を明示的に指定しない場合番号1シェルによって仮定される
まず、その機能を見てみましょう。参考までに以下を参照してください。高度なバッシュスクリプトガイド。
機能
2>&-
これの一般的な形態はですM>&-
。「中」ファイル記述子です。これにより、参照されたファイル記述子の出力が閉じます。「中」。
2>/dev/null
これの一般的な形態はですM>/dev/null
。「中」ファイル記述子です。これにより、ファイル記述子がリダイレクトされます。「中」、到着する/dev/null
。
2>&1
これの一般的な形態はですM>&N
。「中」&「N」ファイル記述子番号。ファイル記述子の出力を結合します。「中」そして「N」単一ストリームとして。
|&
これは単なる略語です2>&1 |
。 Bash 4に追加されました。
&>/dev/null
これは単なる略語です>/dev/null 2>&1
。ファイル記述子2(STDERR)と記述子1(STDOUT)にリダイレクトします/dev/null
。
>/dev/null
これは単なる略語です1>/dev/null
。ファイル記述子1(STDOUT)を/dev/null
。
bash以外の場所、tcsh、mkshなどに移植可能
csh
私は外部の他のシェルをあまり扱っていませんでしたtcsh
。 Bashのリダイレクト演算子と比較して、この2つの操作の私の経験によると、bashはこの点で優れています。よりtcsh のマニュアルページ詳細については。
csh / tcshはあなたが要求したコマンドを直接サポートしません。同様の関数を構成するには、別の構文を使用する必要があります。