Next Previous Contents

8. Cargar un prompt diferente

8.1 Cargar un prompt diferente más tarde

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

8.2 Carga inmediata de un prompt diferente

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.


Next Previous Contents