魚のマニュアルから:
[ファイル記述子]はアンパサンドの後にマイナス記号(& - )を付けたものです。ファイル記述子は閉じられます
Arch wikiより:
標準出力のサイレンシング: $ command> & -
これから私はそれがのエイリアスのように振る舞うと思っていました /dev/null
しかし、コマンドラインで簡単に実験してみると、これはそうではないことがわかります。
$ echo hello >&-
Error while writing to stdout
write_loop: Bad file descriptor
また、奇妙なことに&の前にスペースを追加するとします。別のエラーが発生します。
$ echo hello > &-
Expected a string, but instead found a '&'
ここで一体何が起こっているのですか?私は魚を走っています2.2.0
3
あなたが引用したドキュメンテーションはそれがそうであると言います 閉まっている 。閉じたファイルディスクリプタに書き込むとエラーが発生します。これは報告されます(もちろん標準エラー出力 - 異なるファイルディスクリプタ)。
—
Thomas Dickey