
habe irgendwo Code zur rechtsseitigen Textausrichtung gelesen und habe einige Fragen:
PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
- was machen die Backticks?
- 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 varname
Syntax geschrieben werden:
printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"