Was diese Nutzung Mittelwert:Was bedeutet "erwarten << - DONE"?
expect <<- DONE
...
DONE
wie in eof not recognized in Expect Script
vor allem die <<-
Teil.
Was diese Nutzung Mittelwert:Was bedeutet "erwarten << - DONE"?
expect <<- DONE
...
DONE
wie in eof not recognized in Expect Script
vor allem die <<-
Teil.
In man bash
, wenn Sie nach <<-
suchen (durch Eingabe von: /<<-
und Enter
), finden Sie:
If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter. This allows here-documents within shell scripts to be indented in a natural fashion.
Zum Beispiel:
$ cat << EOF
> hello
> there
> EOF
hello
there
Das Gleiche, aber unter Verwendung von <<-
anstelle von <<
$ cat <<- EOF
> hello
> there
> EOF
hello
there
Das führende TAB-Zeichen in der "Hallo" -Zeile wird entfernt.
Als Zitat aus der man
Seite sagte dies ist nützlich in Shell-Skripten, zum Beispiel:
if cond; then
cat <<- EOF
hello
there
EOF
fi
Es ist üblich, die Linien innerhalb Codeblöcke, wie in dieser if
Aussage, zur besseren Lesbarkeit einrücken .
if cond; then
cat << EOF
hello
there
EOF
fi
Das ist sehr unangenehm zu lesen, und es wird noch viel schlimmer in einem komplexeren realistisch Skript: Ohne die <<-
Operator Syntax, würden wir den obigen Code so schreiben gezwungen werden. obwohl
Denken Sie daran, wie @glenn-jackman wies darauf hin:
Beachten Sie, dass nur Tabulatorzeichen entfernt werden, nicht beliebig Leerzeichen. Achten Sie darauf, dass Ihr Texteditor Tabulatoren nicht in Leerzeichen konvertiert.
Beachten Sie, dass nur * Tab-Zeichen * entfernt werden, keine willkürlichen Leerzeichen. Achten Sie darauf, dass Ihr Texteditor Tabulatoren nicht in Leerzeichen konvertiert. –
@glennjackman, du hast Recht, das ist gut, darauf hinzuweisen, zu meinem Beitrag hinzugefügt, danke! – janos
Deshalb verwende ich sie nicht: Ich traue anderen (oder mir) nicht, die Tab-Zeichen zu pflegen. Ich lebe mit dem Hässlichen. –