Las explicaciones en este COMO han mostrado como crear las variables de
entorno PS1, o como incorporar las cadenas PS1 y PS2 a funciones que
podían ser llamadas por ~/.bashrc o como un tema por el paquete
Bash Prompt.
Mediante el paquete Bash Prompt, basta con escribir bashprompt
-i< para ver una lista de temas disponibles. Para poner un prompt a los
shells de ingreso (login shells) futuros (sobre todo la consola, pero
también telnet y Xterms, dependiendo de cóm oestén configuradas
las Xterms), se hace con bashprompt -l tema. bashprompt
entonces modifica el ~/.bash_profile para llamar al tema
seleccionado al arrancar. Para poner un prompt a subshells futuros
(normalmente Xterms, rxvt, etc.), se hace con bashprompt -s
tema, y bashprompt modifica el ~/.bashrc para llama al tema
apropiado al iniciarse.
Véase en "Valor permanente de las cadenas PS?" la nota de Johan Kullstam
acerca de la importancia de poner las cadenas PS? en ~/.bashrc
Se puede cambiar el prompt en el terminal actual (usando la función de
ejemplo "elite" de arriba) escribiendo source elite seguido de
elite (suponiendo que el fichero de la función elite se encuentre en
el directorio de trabajo). Esto es engorroso, y deja una función extra
(elite) en el espacio de entorno - si quiere limpiar el entorno, se hace
con unset elite. Esto parecería un buen candidato para un pequeño
shell script, pero un script no funciona aquí porque un script no puede
cambiar el entorno del shell actual: solo puede cambiar el entorno del
subshell en el que se ejecuta. En cuanto termina el script, el subshell
desaparece y con él los cambios hechos al entorno. Algo que si puede
cambiar el entorno del shell actual son las funciones de entorno. El
paquete Bash Prompt coloca una función llamada callbashprompt en
el entorno, y, mientras no se documente, no puede usarse para cargar
ningún tema de bashprompt sobre la marcha. Mira en el directorio de
temas que instala (el tema que se llama debe estar allí), hace un
source de la función solicitada, carga la función y luego la elimina,
de forma que mantiene el entorno limpio. callbashprompt no fué
pensada para usarse de este modo, y no tiene control de errores, pero si
se tiene esto en cuenta, funciona bastante bien.