Las explicaciones en este COMO han mostrado cómo crear las variables de
entorno PS1
, o cómo 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ómo esté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.
Vea
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 parece un buen candidato
para un pequeño shell script, pero un script no funciona aquí porque 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
fue pensada para usarse de este modo, y no tiene control de errores, pero
si se tiene esto en cuenta, funciona bastante bien.