"とはどういう意味ですか?">

"<>"とはどういう意味ですか?

"とはどういう意味ですか?">

リダイレクトを理解するのに苦労しています。 exec <>をLinuxコマンドとして使用する方法とその意味は何ですか?たとえば、説明してもらえますか?

ベストアンサー1

リダイレクト<>演算子は、読み取りと書き込みのために右側の単語で指定されたファイルを開きます。左側のファイル記述子番号(この番号が省略されている場合、ほとんどのシェルでは0)がファイルに関連付けられます。

例:

$ echo Hello >file

Helloファイルに文字列を書き、その後に改行文字が続きます。

$ { read -r message <&3; printf 'Got "%s"\n' "$message"; echo Good bye >&3; } 3<>file
Got "Hello"

これにより、ファイル記述子 3 で読み書きするファイルが開きます。ファイル記述子3から文字列を読み取り、端末に印刷します。その後、同じファイル記述子に新しい文字列が書き込まれます。

$ cat file
Hello
Good bye

ファイルには、前のコマンドで作成した追加の文字列が含まれます。文字列は、Helloファイルへの書き込み時にファイルポインタがある場所なので、改行文字の後に挿入されます。後でファイルにさらにデータがある場合、Hello文字Good bye列は一部のデータを上書きします。

おすすめ記事