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

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

リダイレクトを理解するのに苦労しています。 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列は一部のデータを上書きします。

答え2

理解しようとしますcat

cat通常どおり使用できます。

cat > somefilecontrol+dこれでいくつかの入力を書くことができ、入力が完了した後リダイレクト>オペレーターと共に一部のファイル

今試してください:

cat <> somefile

cat前と同じことを行います。

しかし、入力はありません一部のファイル

今試してください:

cat <(echo "hello world")> somefile

今少し入力があるでしょう。一部のファイルリダイレクト演算子を広く活用してください。

関連情報