In ksh:
Nel mio .profile, ho impostato la seguente var (quindi questa var è impostata una sola volta per sessione, indipendentemente da quante 'su' faccio:
PCH=\>
Nel mio .kshrc ho:
if let "${SPID:-0} != $$"; then
PCHS="$PCHS$PCH"
fi
Divento root con il seguente alias, piuttosto che "su" (kroot è un utente root con una shell ksh invece di sh (solaris) o bash (linux):
alias root='PCH=\# su -m kroot'
alias me="PCH=\> su -m $USER"
Ho anche definito queste due funzioni:
function lprompt {
PS1=$HOST' $? $PWD '"$PCHS "
}
function sprompt {
PS1='$?":"${PWD##*/}'"$PCHS "
}
e finalmente alla fine di .kshrc ho:
lprompt
Tutto ciò mi dà l'impostazione automatica predefinita della fine del mio prompt per indicare se sono root (e a sua volta se ho un genitore che era root), directory di lavoro corrente, nome host e stato di uscita dell'ultimo processo. sprompt elimina il nome host, riduce il percorso fino al solo nome base e rimuove gli spazi:
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>#>
Gli alias root / me provengono dall'amministrazione pre-sudo su Solaris e le vecchie abitudini sono morte duramente. Dubito che qualcuno implementerebbe esattamente la stessa cosa in questi giorni. Le funzioni che cambiano rapidamente e lo stato esistente continuano a essere molto utili per me.