Wenn Sie bei der Definition Ihrer Anführungszeichen tatsächlich doppelte Anführungszeichen verwenden, werden PROMPT
alle darin enthaltenen Parameter durch die Definition ersetzt und nicht jedes Mal, wenn die Aufforderung gedruckt wird. Sie können dies verhindern, indem Sie $VIRTUAL_ENV
anders zitieren .
Da die ganze prompt in einfache Anführungszeichen setzen Substitution zu verhindern, $VIRTUAL_ENV
wahrscheinlich den Rest der Eingabeaufforderung brechen, versuchen Sie einfach die zitierte $
durch das Voranstellen ein \
, wie diese
PROMPT="╭─$ $ [\$] $ $ ╰─%B$%b "
Ich vermute, dass die anderen Parameter funktionieren, weil sie durch etwas ersetzt werden, das dann jedes Mal ausgewertet wird. Zum Beispiel $
wird wahrscheinlich durch etwas ersetzt, das zumindest die Eingabeaufforderung enthält, %n
und %m
mit einem @
dazwischen.
$
funktioniert, weil er bereits den erwarteten Wert enthält, wenn Sie die Eingabeaufforderung festlegen.
Sie können dies leicht überprüfen, indem Sie Folgendes ausführen:
echo $PROMPT