SO を閲覧しているときに、たとえば EOFD が表示されることがあります。
ftp -vn <$hostname> <<EOFD
はい、ご参考までに、Google を試してみましたがうまくいきませんでした。
SO を閲覧しているときに、たとえば EOFD が表示されることがあります。
ftp -vn <$hostname> <<EOFD
はい、ご参考までに、Google を試してみましたがうまくいきませんでした。
あなたが参照する質問の文脈では、特別なことを意味するものではなく、ヒアドキュメントEOFDの始まりにすぎません。
Advanced Bash-Scripting Guideから:
ヒアドキュメントは、特別な目的のコードブロックです。I / Oリダイレクトの形式を使用して、コマンドリストをインタラクティブプログラムまたはコマンド(ftp、cat、ex text editorなど)にフィードします。
COMMAND <<InputComesFromHERE ... ... ... InputComesFromHERE制限文字列は、コマンドリストを示します(フレーム化します)。
<<制限文字列の前に特別な記号があります。stdinこれには、コマンドブロックの出力をプログラムまたはコマンドの出力にリダイレクトする効果があります。これは、に似てinteractive-program < command-fileいcommand-fileます。command #1 command #2 ...同等の
here documentものは次のようになります。interactive-program <<LimitString command #1 command #2 ... LimitString
limit stringコマンドリストのどこにも発生せず、問題を混乱させないように、十分に珍しいものを選択してください。
そのため、その質問では、作成者は、ftpインタラクティブに使用するかのようにコマンドをに送信していました。
これらの検索用語でもう一度お試しください:こちらのドキュメント
<<EOFDコンストラクトは、シェル スクリプト (Bourne、bash など、他に何があるかはわかりません) の特別なタイプのリダイレクトであり、次の行が表示されるまで、次の行をストリームとして扱うようにシェルに指示しstdinますEOFD。
文字列は任意です - 任意の一意のトークン (または入力ストリームEOFDにない少なくとも 1 つ)。stdin
これらの言葉は恣意的であるEOFDのに、慣例ではなくなぜ誰かが書くのでしょうEOFか?
(ちなみに、!文字を使用する伝統もあります:
cat <<!
Hello
world
!
)
EOFDヒア ドキュメントで生成しているテキスト自体がシェル スクリプトであり、それ自体にヒア ドキュメントが含まれていて、これらのヒア ドキュメントが既にEOF区切り文字として使用している場合に役立ちます。
cat <<EOFD
#!/bin/sh
# here doc script
cat <<EOF
Hello
World
EOF
EOFD
:)