/ / Was bedeutet cmdand / cmdor in zsh? - zsh

Was bedeutet cmdand / cmdor in zsh? - zsh

Warum druckt zsh? cmdand f├╝r jeden && am anfang der zeile?

Zum Beispiel, wenn ich die folgenden Zeilen in eine Z-Shell einf├╝ge

echo "foo" && echo "bar" && 
echo "buz" && 
echo "jam"

... zsh w├╝rde mir folgendes anzeigen

echo "foo" && echo "bar" && 
cmdand cmdand> echo "buz" && 
cmdand cmdand cmdand> echo "jam"

Also stellt zsh a voran cmdand f├╝r jeden && es stie├č bis zu dieser Linie. Mir ist gerade aufgefallen, dass ├Ąhnliches f├╝r gilt || und cmdor.

Warum w├Ąre das ├╝berhaupt n├╝tzlich? St├Ârt es nicht nur die Konsole? Kann dieses Verhalten kontrolliert werden?

Ich habe dieses Verhalten unter Mac OS und Ubuntu f├╝r zsh-Versionen> 5.x beobachtet.

Antworten:

4 f├╝r Antwort Ôäľ 1

Es wird durch den Wert der Umgebungsvariablen gesteuert PS2, deren Standardwert "%_> " gibt dieses Verhalten. Der Zweck dieses Befehls ist es, zu zeigen, wo Sie sich in einem mehrzeiligen Befehl befinden (und nicht nur Zeilen, die mit einem Back-Slash enden). Wenn Sie z. B. einen bedingten Befehl ├╝ber mehrere Zeilen eingeben, erhalten Sie Folgendes:

$ if [ "$var" ]
if> then
then> echo var: $var
then> else
else> echo var: not set
else> fi
var: not set
$

Die Shell unterscheidet nicht zwischen getippten und eingef├╝gten Zeilen.

einstellen PS2="> " f├╝r ein einfaches > in jeder Fortsetzungszeile.

Weitere Informationen finden Sie im Handbuch man zshall und suche nach PS2.