`cat <> file`はどのように機能しますか?

`cat <> file`はどのように機能しますか?

cat < fileコンテンツ印刷文書標準出力として。

cat > fileCtrl+が検出されるまでstdinを読み、D入力テキストを作成します。文書

cat <> file、少なくとも私のBashバージョンでは、以下を印刷します。文書問題はありませんが(エラーなし)、ファイルは変更されず、修正タイムスタンプも更新されません。

Bash標準は、3番目のステートメントで無視されたように見える内容をどのように正当化しますか>?さらに重要なこと行為何か?

ベストアンサー1

Bashは<>生成に使用します。ファイル記述子の読み書き:

リダイレクト演算子

[n]<>word

ファイルディスクリプタnまたはnが指定されていない場合は、ファイルディスクリプタ0で読み書きするために単語拡張子を持つファイルを開くようにします。ファイルが存在しない場合、ファイルが生成されます。

cat <> file読み書きをオンにして、ディスクリプタfile0(標準入力)にバインドします。< file通常、誰もが標準入力に書き込もうとしないという点で合理的に書かれたプログラムと本質的に同じです。しかし、誰かがそうすればそうすることができます。

これを直接テストするために、単純なCプログラムを書くことができます。write(0, "hello", 6)これは標準入力で作成されますhellofile

<>しなければならない他のPOSIX互換シェルでも動作します。同じ効果があります。

おすすめ記事