Was macht '(einfaches Anführungszeichen) im Terminal?

8

Wenn ich <enter>im Terminal '(einfaches Anführungszeichen neben der Schaltfläche) eingebe und dann die Eingabetaste drücke, wird eine >Eingabeaufforderung angezeigt. Was genau ist das, wofür wird es verwendet und welche Art von Befehlen kann ich hier eingeben?

Ich kann <Ctrl-C>raus, aber das ist alles was ich habe.

Insperatus
quelle

Antworten:

6

Ein Terminal akzeptiert nicht nur einzeiligen Code. Eigentlich können Sie Code schreiben (wie bash Scripting ist in mehreren Zeilen eine Programmiersprache).

Zum Beispiel, wenn Sie schreiben:

while true; do <enter>

es wird genau das zeigen, >was auch für Ihren Fall gezeigt wurde. Hier können Sie weitere Befehle eingeben. Wenn Sie jetzt Folgendes eingeben:

echo "Cake is a lie" <enter>
sleep 1              <enter>
done                 <enter>

Der Code wird ausgeführt (in diesem Fall handelt es sich lediglich um eine while-Schleife, die alle 1 Sekunde eine Zeichenfolge ausgibt). Auf diese Weise können Sie kleine Programme erstellen, ohne sie wie folgt in einzeiligen Code schreiben zu müssen:

while true; do echo "Cake is a lie"; sleep 1; done

was in diesem Fall kein solches Problem ist, aber es könnte in anderen Fällen sein (mit mehr zu schreibendem Code).

Daher wird es im Allgemeinen zum Schreiben mehrerer Codezeilen verwendet. In Ihrem 'Fall erkennt die Shell, dass Sie keine gerade Zahl in Ihrem Code haben, und dies könnte auf keinen Fall funktionieren (das gleiche gilt für "). Sie können also mehr Code schreiben, um das zu vervollständigen, was Sie übrig haben.

Zum Beispiel, wenn Sie als Befehl geben:

echo "Cake is a <enter>

dann können Sie fortfahren. Und in der Tat können Sie:

lie"            <enter>

Es wird normalerweise ausgegeben:

Cake is a
lie
Hytromo
quelle
Ich sehe, anstatt mir eine Fehlermeldung zu geben, gibt es mir die Möglichkeit, den Befehl verständlich zu beenden. Gibt es einen Namen für diesen "Modus"?
Insperatus
2
Ich glaube nicht, dass es einen speziellen Namen hat, es wird normalerweise als "sekundäre Eingabeaufforderung" bezeichnet
Hytromo