En ksh:
En mi .profile, configuré la siguiente var (por lo que esta var solo se establece una vez por sesión, sin importar cuántas sumas haga:
PCH=\>
En mi .kshrc tengo:
if let "${SPID:-0} != $$"; then
PCHS="$PCHS$PCH"
fi
Me convierto en root con el siguiente alias, en lugar de "su" (kroot es un usuario root con un shell ksh en lugar de sh (solaris) o bash (linux):
alias root='PCH=\# su -m kroot'
alias me="PCH=\> su -m $USER"
También he definido estas dos funciones:
function lprompt {
PS1=$HOST' $? $PWD '"$PCHS "
}
function sprompt {
PS1='$?":"${PWD##*/}'"$PCHS "
}
y finalmente al final de .kshrc tengo:
lprompt
Todo esto me da por defecto la configuración automática del final de mi solicitud para indicar si soy o no root (y, a su vez, si tengo un padre que era root), el directorio de trabajo actual, el nombre de host y el estado de salida del último proceso. sprompt elimina el nombre de host, reduce la ruta solo al nombre base y elimina espacios:
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>#>
Los alias raíz / me provienen de la administración previa a sudo en Solaris y los viejos hábitos han muerto duramente. Dudo que alguien implemente exactamente lo mismo en estos días. Las funciones de cambio rápido y el estado existente siguen siendo muy valiosas para mí.