Während SO Surfen I:Was bedeutet EOFD? manchmal EOFD siehe zum Beispiel
ftp -vn <$hostname> <<EOFD
Ja Ich habe versucht, Google ohne Glück, nur für den Fall, dass Sie sich fragen.
Während SO Surfen I:Was bedeutet EOFD? manchmal EOFD siehe zum Beispiel
ftp -vn <$hostname> <<EOFD
Ja Ich habe versucht, Google ohne Glück, nur für den Fall, dass Sie sich fragen.
Im Zusammenhang mit the question you reference, EOFD
bedeutet nichts besonderes, es ist nur der Beginn einer Bash here document.
Vom Advanced Bash-Scripting Guide:
A hier dokumentieren ist ein Spezial-Codeblock. Es verwendet eine Art von E/A-Umleitung, um eine Befehlsliste an ein interaktives Programm oder einen Befehl wie ftp, cat oder den ex-Texteditor zu leiten.
COMMAND <<InputComesFromHERE ... ... ... InputComesFromHERE
A Grenz Zeichenfolge abgrenzt (Frames) der Befehlsliste. Das Sonderzeichen
<<
steht vor der Begrenzungszeichenfolge. Dies hat zur Folge, dass die Ausgabe eines Befehlsblocks in diestdin
des Programms oder Befehls umgeleitet wird. Es ist ähnlich wieinteractive-program < command-file
, wocommand-file
enthältcommand #1 command #2 ...
Die
here document
Äquivalent sieht wie folgt aus:interactive-program <<LimitString command #1 command #2 ... LimitString
Wählen Sie ein
limit string
so ungewöhnlich, dass es nicht überall in der Befehlsliste auftreten und Angelegenheiten verwirren.
Also in dieser Frage, der Autor schickte Befehle an ftp
, als ob es interaktiv verwenden würde.
Macht Sinn, vielen Dank. – jdorfman
Versuchen Sie es erneut mit diesen Suchbegriffen: here document
Das <<EOFD
Konstrukt ist eine spezielle Art eine Umleitung für Shell-Skripten (Bourne, bash und ich bin mir nicht sicher, was die anderen), die die Schale sagen die Linien zu behandeln folgen wie der stdin
Stream, bis eine Zeile, die aus EOFD
besteht, gesehen wird.
Der String EOFD
ist beliebig - ein beliebiges eindeutiges Token (oder mindestens ein Token, das nicht im stdin
Eingabestrom enthalten ist).
Da diese Wörter willkürlich sind, warum würde jemand schreiben EOFD
anstatt der üblichen EOF
?
(Und, nebenbei bemerkt, ist es auch die Tradition der Verwendung des !
Charakter:
cat <<!
Hello
world
!
)
EOFD
könnte nützlich sein, wenn der Text, den Sie mit einem hier Dokument sind zu erzeugen ist selbst ein Shell-Skript, das sich hier Dokumente enthält, und die hier bereits Dokumente EOF
zur Begrenzung verwenden:
cat <<EOFD
#!/bin/sh
# here doc script
cat <<EOF
Hello
World
EOF
EOFD
:)
Ich habe die '' '- Tradition (an die ich mich noch erinnere) nicht gesehen. "EOF" und "Ende" (in Groß- und Kleinschreibung) sind ziemlich häufig, und manche Leute verwenden unterschiedliche Endmarkierungen für jedes Here-Dokument in einem Skript, vermutlich um sie leichter zu finden. – torek
weiß nicht über 'D'. Aber EOF = Ende der Datei – hjpotter92
End of Data, vielleicht? Der Bezeichner, der in einem [hier Dokument] (http://en.wikipedia.org/wiki/Here_Dokument) verwendet wird, kann beliebig sein. –
als @blahdiblah wies darauf hin, dass ich [diese Frage] referenzierte (http://stackoverflow.com/q/10013151/85950) – jdorfman