Noclobberを設定するときに>(プロセスの交換)を許可する方法は?

Noclobberを設定するときに>(プロセスの交換)を許可する方法は?

set -o noclobber対話型シェル()でnoclobberを設定すると、プロセスオーバーライドが機能しないことがわかりました。

# echo hello > >(cat)
-bash: /dev/fd/62: cannot overwrite existing file

noclobberを永久にオフにするとうまくset +o noclobberいきます。

# echo hello > >(cat)
hello

私は>|次のようにnoclobberをオーバーライドしようとしました。

echo hello > >|(cat)
-bash: syntax error near unexpected token `>|'

ノークローバーを一時的に無効にする方法はありますか?

更新:ファイルが「破損」していないため、出力がプロセスの置き換えに進むときにnoclobberが適用されるのは実際には合理的ではないようです。 noclobberが誤って開かれている場合は、「既存のファイルを上書きできません」エラーを防ぐために、常にnoclobberを使用して>|オーバーライドすることをお勧め2>|し、安全な習慣のようです。

ベストアンサー1

ファイルと同じ方法でnoclobberをオーバーライドします>|

# echo hello >| >(cat)
hello

プロセス交換()の一部ではない>|リダイレクトシンボル()を伴う必要があります。>>(…)

おすすめ記事