回答:
<<<開始「ここに文字列」:文字列が展開され、プログラムの標準入力に供給されます。(あなたの場合、拡張はあまり起こりません。)これは次と同等です:
echo ddd | md5sum
一方、<<hereドキュメントを開始します。マーカーdddを含む次の行までのすべてが、プログラムの入力を構成します。(データに表示されそうにないマーカーを使用する必要があります。)上記と同じ効果を得るには、次のようにします。
md5sum <<END
ddd
END
との間に1つの違いが<<ENDあり<<'END'ます:引用符なしでは、ヒアドキュメント内の変数、エスケープシーケンスなどは通常どおりに展開されます。
<<<here文字列を導入します。その後の文字列<<<は、コマンドへの入力として渡されます。これは、rcUnixへのByron Rakitzisの(Plan 9シェル)の移植に由来し、zsh、ksh93、およびbashにも存在します。
<<ヒアドキュメントを導入します。シェルスクリプトの後続の行はコマンドへの入力として渡され、その後の文字列<<はターミネータです。ここでのドキュメントは、すべてのBourneスタイルのシェル(Bourne、POSIX、ash、bash、ksh、zshなど)、Cスタイルのシェル(csh、tcsh)、およびPlan 9シェル(rc、es)で機能します。
<<<はありません。kshパスはrc-> zsh-> ksh93->ですbash(kshリリースノートは一度機能を借用したことを認めていますzsh)。<<またで働くrcスタイルシェル
rcありzsh <<<ますが、rc「s」には末尾の改行文字が含まれておらず、一時ファイルを使用していません(少なくともLinuxへのポートではパイプと追加プロセスを使用します)。
<<<、Unixのポートから来ているrcように見えrcます。
rc、<<<(のような<<)ので、コマンドで使用することができ、一時ファイルを使用してlseek自分のSTDIN。