Rechtsbündiges PS1 und PS1 gleich sich selbst?

Rechtsbündiges PS1 und PS1 gleich sich selbst?

habe irgendwo Code zur rechtsseitigen Textausrichtung gelesen und habe einige Fragen:

        PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
  1. was machen die Backticks?
  2. warum steht am ende der leitung noch eine PS1?

Danke für deinen Beitrag:)

Antwort1

Dadurch wird eine Eingabeaufforderung erstellt, in der Sie das rechtsbündige $TEXT, gefolgt von einer neuen Zeile und anschließend dem vorherigen Wert von haben $PS1.

Die Backticks sind dieBefehlsersetzung: Die Shell führt den Befehl aus und ersetzt die Ausgabe des Befehls. Es wird im Allgemeinen empfohlen, die $(cmd)Syntax anstelle der `cmd`Syntax zu verwenden.

Diese Zeile kann ohne Befehlsersetzung mit der folgenden printf -v varnameSyntax geschrieben werden:

printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"

verwandte Informationen