Verder Terug Inhoud

9. Laden van een Andere Prompt

9.1 Laden van een Andere Prompt, Later

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.

9.2 Laden van een Andere Prompt, Onmiddellijk

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.


Verder Terug Inhoud