Wenn Ihr sshd keine nützlichen Variablen bereitstellt, können Sie verwenden
ps -p $PPID
oder ein anderer zufälliger ps-Trick (wenn Ihre Shell nicht festgelegt ist $PPID
), um festzustellen, ob der übergeordnete Prozess der Shell Ihr Remote-Anmeldeprozess ist oder nicht. Dann, wenn Eltern-Fern-Ding sind, wechseln Sie $ PS1. Laden Sie dann OpenSSH herunter und verwenden Sie die Vorschläge von Geekosaur / Caleb, da Ihr SSH-Server Junk ist. ;)
Sie können auch die Ausgabe von "who am i" verwenden, das letzte Feld (dh $( who am i | awk '$0=$NF')
) abrufen und überprüfen, ob es sich um einen Remote- oder einen lokalen Host handelt, um zu entscheiden, ob Sie sich lokal oder remote angemeldet haben.
Oder Sie können die Ausgabe von $(hostname)
einschalten, damit Ihre Shell auf bestimmten Hosts das entsprechende $ PS1 verwendet.
Oder lassen Sie uns wirklich verrückt werden. Wenn Sie eine moderne Shell wie bash, ksh93 oder zsh verwenden, können Sie die Tatsache nutzen, dass $ PS1 bei der Ausführung neu bewertet wird. Sie könnten also einen bedingten Inline-Block einfügen, um das verrückte Git-Zeug zu erledigen, wenn sich Ihr cwd im Repository befindet und etwas anderes außerhalb. Zum Beispiel nehme ich hier meine Eingabeaufforderung in Abhängigkeit von dem Verzeichnis vor, in dem ich mich [[ conditional ]] && $( echo "whatever it should be if true) || $( echo "whatever should be the if-not-true prompt" )
befinde.
default prompt$ PS1='$(id -un) @ $(hostname)$( [[ $(pwd) = /tmp ]] && echo " [I am in /tmp]" || echo " /not/in/tmp")$ '
myname @ host /not/in/tmp$ cd /tmp
myname @ host [I am in /tmp]$ cd /etc
myname @ host /not/in/tmp$
Sicher, die $ PS1-Definition wird in Ihrem Profil verrückt aussehen, aber Sie erhalten dann nur dann super buntes Git-Zeug, wenn Sie sich tatsächlich im Git-Repository befinden, während Sie an anderer Stelle normale Farben haben. :) Beachten Sie, dass Sie für die PS1-Zuweisung einfache Anführungszeichen verwenden müssen. Sie möchten nicht, dass die Variablen erweitert werden, wenn PS1 zugewiesen wird. Sie möchten, dass sie erweitert werden, wenn $ PS1 später ausgewertet wird. Also einfache Anführungszeichen.