In einem Bash-Skript, das ich von einem anderen Programmierer erhalten habe, waren einige Zeilen länger als 80 Spalten. Was ist das Zeichen oder Ding, das der Zeile hinzugefügt werden soll, um anzuzeigen, dass die Zeile in der nächsten Zeile fortgesetzt wird?
98
Antworten:
Der Charakter ist ein Backslash
\
Aus dem Bash-Handbuch :
quelle
^M
. Das Problem scheint zu sein, dass mir das Skript von jemandem gegeben wurde, der Windows verwendet. Eine schnelledos2unix
Im Allgemeinen können Sie einen Backslash am Ende einer Zeile verwenden, damit der Befehl mit der nächsten Zeile fortfährt. Es gibt jedoch Fälle, in denen Befehle implizit fortgesetzt werden, nämlich wenn die Zeile mit einem Token endet, ohne dass ein Befehl legal beendet werden kann. In diesem Fall weiß die Shell, dass weitere kommen, und der Backslash kann weggelassen werden. Einige Beispiele:
Anders, aber verwandt ist die implizite Fortsetzung in Anführungszeichen. In diesem Fall fügen Sie der Zeichenfolge ohne Backslash einfach eine neue Zeile hinzu.
Mit einem Backslash teilen Sie die logische Zeile erneut in mehrere logische Zeilen auf.
quelle
[[
-]]
Zustand, in anderen aber nicht, und ich versuche , die Regeln zu Figur.\
macht den Job. Die Antwort von @ Guillaume und der Kommentar von @ George beantworten diese Frage eindeutig. Hier erkläre ich, warumThe backslash has to be the very last character before the end of line character.
Sie diesen Befehl berücksichtigen:Wenn danach ein Leerzeichen vorhanden ist
\
, funktioniert die Zeilenfortsetzung nicht. Der Grund dafür ist, dass\
die spezielle Bedeutung für das nächste Zeichen entfernt wird, bei dem es sich um ein Leerzeichen handelt, das nicht das unsichtbare Zeilenvorschubzeichen ist. Das Zeilenvorschubzeichen steht nach dem Leerzeichen\
in diesem Beispiel nicht.quelle