Ich versuche, die Nachricht des Tages (MOTD) auf meiner Ubuntu Amazon EC2-Box so zu ändern, dass sie den Git-Status eines meiner Verzeichnisse anzeigt, wenn ich SSH einnehme.
Die Ausgabe aller Standard-MOTD-Dateien hat am Anfang jeder Zeile zwei Leerzeichen, sodass sie gut eingerückt aussieht. Da meine git status
Ausgabe jedoch mehrere Zeilen umfasst, echo -n " "
wird nur die erste Zeile eingerückt .
Irgendeine Idee, wie ich es schaffen kann, jede Zeile einzurücken?
sed
wodurch in einigen Fällen ein Problem auftreten kann.set -euo pipefail
in der zweiten Zeile Ihres Skripts angeben, wird es für Sie getestet.Aufbauend auf der Antwort von @ Barmar ist dies eine übersichtlichere Methode:
indent() { sed 's/^/ /'; } git status | indent other_command | indent
quelle
Dank @Barmar und @Marplesoft für einige nette einfache Lösungen - hier ist eine weitere Variante, die anderen gefallen könnte - eine Funktion, mit der Sie feststellen können, wie viele Einrückungsstufen verwendet werden
pr
:indent() { local indentSize=2 local indent=1 if [ -n "$1" ]; then indent=$1; fi pr -to $(($indent * $indentSize)) } # Example usage ls -al | indent git status | indent 2
quelle
ls
Sie die--color=always
Option verwenden können :ls -al --color=always | indent
. Quelle: dieser StackExchange-Thread