In deze HOWTO is aangegeven hoe PS1-omgevingsvariabelen kunnen worden aangemaakt, of hoe die PS1- en PS2-strings in functies kunnen worden opgenomen, welke door ~/.bashrc of als een theme door het bashprompt package kunnen worden aangeroepen.
Met het bashprompt package, kun je bashprompt -i
intikken om een
lijst met beschikbare themes te zien te krijgen.
Voor het instellen van de prompt in toekomstige login-shells
(in eerste instantie de console, maar ook telnet en Xterms, afhankelijk van
hoe je Xterms zijn ingesteld), tik je in bashprompt -l themename
.
Bashprompt wijzigt dan je ~/.bash_profile om het verzochte theme aan te
roepen wanneer het start.
Het instellen van de prompt in toekomstige subshells (meestal Xterms,
rxvt, enz.), gaat door het intikken van bashprompt -s themename
, en
bashprompt wijzigt je bestand
~/.bashrc om het juiste theme tijdens het opstarten aan te roepen.
Zie ook Permanent Instellen van de PS?-Strings voor de notitie van Johan Kullstam betreft het belang van het plaatsen van de PS?-strings in ~/.bashrc.
Je kunt de prompt in je huidige terminal veranderen (met behulp van de
voorbeeldfunctie "elite" van hiervoor) door het typen van
"source elite
" gevolgd door "elite
" (in de veronderstelling
dat de elite functie in de werkdirectory voorkomt).
Dit is wat omslachtig en het laat je achter met een extra functie (elite)
in de ruimte van je omgeving. Als je de omgeving op wilt schonen, zou je
bovendien "unset elite
moeten typen. Dit ziet er uit als een
ideale kandidaat voor een klein shell-script, maar een script werkt hier
niet omdat het script de omgeving van je huidige shell niet kan wijzigen:
het kan alleen de omgeving van de subshell waaronder het draait wijzigen.
Zodra het script stopt, verdwijnt de subshell, en wijzigingen die het
script aan de omgeving had toegebracht, zijn er niet meer.
Wat de omgevingsvariabelen van je huidige shell wel kan veranderen
zijn omgevingsfuncties. Het bashprompt package plaatst een functie genaamd
"callbashprompt" in je omgeving en ondanks dat ze het niet documenteren, kan
het worden geladen om iedere bashprompt theme tijdens het werken te laden.
Het kijkt in de theme directory dat het installeerde (het theme dat je
aanriep moet zich hier bevinden),
past een source toe op de functie waarnaar je vroeg, laadt de functie,
en past dan een unset toe op de functie, dus je omgeving zonder rommel
achterlatend. Het was niet de bedoeling dat "callbashprompt" op deze
manier gebruikt zou worden en het bevat geen controle op fouten, maar
als je dat in gedachten houdt, werkt het tamelijk goed.