この文書の形式は次のとおりです。
<<[−]word
here-document
delimiter
この文書を標準入力として使用するプログラムは、区切り文字を表示して使用しますか?
それとも、bashでのみ区切り文字を使用し、この文書を標準入力として入力するプログラムでは表示および使用されませんか?
答え1
いいえ、外部プログラムではこれを見ることはできません。区切り文字は、スクリプトを実行しているシェルでのみ表示および使用できます。
答え2
これはシェルがドキュメント区切り文字を使用する場所であり、外部プログラムはこれについて全く知らない。
シェルがやったトークン認識そしてここに文書データをプログラムに渡します。
そしてstrace
:
$ strace -s 10 -e read cat <<-IN
1
IN
read(3, "\177ELF\2\1\1\3\0\0"..., 832) = 832
read(0, "1\n", 131072) = 2
1
read(0, "", 131072) = 0
+++ exited with 0 +++
ここに表示される文書データのみを表示できますcat
。