foobar
プロローグ、機能、呼び出しを提供します。
exec 3>/dev/null
function foobar { echo foo; echo bar >&2; }
foobar >/dev/null
foobar 2>/dev/null
foobar &>/dev/null
foobar &>&3
Bashが最後の単純なコマンドを実行しないのはなぜですか?対照的に、Bashが終了した場合:
-bash: syntax error near unexpected token `&'
ベストアンサー1
運営者がいないからです&>&
。
&> word
stdoutとstderrにリダイレクトする演算子がありますword
。
[n]>& word
fdからfdをコピーする演算子がありますn
(デフォルト)。特別な場合で、空で数値ではない場合、stdoutとstderrはにリダイレクトされます。1
word
n
word
word
しかし、それはすべてです。ファイル記述子には、演算子と組み合わせることができる特別な構文はありません。オペランドをファイル記述子またはファイル名として解釈できる演算子のみがあります。そして&>&
stdoutとstderrの両方をリダイレクトし、正しいオペランドをファイル記述子として解釈する演算子はありません。
&n
要約:ファイル記述子には特別な構文はありません。&
オペランドではなく演算子に属します。オペレーターがいません&>&
。