Erwägen
echo \ # this is a comment
foo
Das gibt:
$ sh foo.sh
# this is a comment
foo.sh: line 2: foo: command not found
Nach einigen Recherchen im Internet habe ich auf der Schwestersite Stack Overflow eine Lösung von DigitalRoss gefunden . Also kann man machen
echo `: this is a comment` \
foo
oder alternativ
echo $(: this is a comment) \
foo
DigitalRoss erklärte jedoch nicht, warum diese Lösungen funktionieren. Ich würde mich über eine Erklärung freuen. Er antwortete mit einem Kommentar:
Früher gab es einen Shell-
goto
Befehl, der zu den:
hier angegebenen Bezeichnungen verzweigte . Dasgoto
ist weg, aber Sie können immer noch die: whatever
Syntax verwenden ...:
ist jetzt eine Art geparster Kommentar.
Aber ich hätte gerne mehr Details und Kontext, einschließlich einer Diskussion über Portabilität.
Wenn jemand andere Lösungen hat, wäre das natürlich auch gut.
Siehe auch die frühere Frage Wie kommentiere ich mehrzeilige Befehle in Shell-Skripten? .
Nachricht zum Mitnehmen aus der folgenden Diskussion. Dies `: this is a comment`
ist nur eine Befehlsersetzung. Die Ausgabe von : this is a comment
ist nichts, und das wird an die Stelle von gesetzt `: this is a comment`
.
Eine bessere Wahl ist die folgende:
echo `# this is a comment` \
foo