In ksh:
In meinem .profile habe ich die folgende Variable festgelegt (daher wird diese Variable nur einmal pro Sitzung festgelegt, unabhängig davon, wie viele Su's ich mache:
PCH=\>
In meiner .kshrc habe ich:
if let "${SPID:-0} != $$"; then
PCHS="$PCHS$PCH"
fi
Ich werde root mit dem folgenden Alias und nicht mit "su" (kroot ist ein Root-Benutzer mit einer ksh-Shell anstelle von sh (solaris) oder bash (linux):
alias root='PCH=\# su -m kroot'
alias me="PCH=\> su -m $USER"
Ich habe auch diese beiden Funktionen definiert:
function lprompt {
PS1=$HOST' $? $PWD '"$PCHS "
}
function sprompt {
PS1='$?":"${PWD##*/}'"$PCHS "
}
und schließlich am Ende von .kshrc habe ich:
lprompt
All dies gibt mir standardmäßig die automatische Einstellung des Endes meiner Eingabeaufforderung, um anzugeben, ob ich root bin (und ob ich ein übergeordnetes Element habe, das root war), das aktuelle Arbeitsverzeichnis, den Hostnamen und den Exit-Status des letzten Prozesses. sprompt löscht den Hostnamen, verkleinert den Pfad nur auf den Basisnamen und entfernt Leerzeichen:
g3 0 /home/jj33 > expr 1 / 0
expr: division by zero
g3 2 /home/jj33 > expr 1 / 1
1
g3 0 /home/jj33 > root
Password:
g3 0 /home/jj33 ># me
g3 0 /home/jj33 >#> ^D
g3 0 /home/jj33 ># sprompt
0:jj33># me
g3 0 /home/jj33 >#> sprompt
0:jj33>#>expr 1 / 0
expr: division by zero
2:jj33>#>
Die Root / Me-Aliase stammen aus der Pre-Sudo-Administration auf Solaris und alte Gewohnheiten sind schwer gestorben. Ich bezweifle, dass irgendjemand heutzutage genau dasselbe implementieren würde. Die Funktionen zum Ändern der Eingabeaufforderung und der vorhandene Status sind für mich weiterhin sehr wertvoll.