この HOWTO での説明で、環境変数 PS1 の作り方や、そのような PS1 や PS2 を /.bashrc で呼べる関数にいれたり、bashprompt パッケージのテーマとして いれる方法を示してきました。
bashprompt パッケージを使うのに、bashprompt -i
とやれば登録されて
いるテーマの一覧が出てきます。ログインシェルのプロンプトを設定するには
bashprompt -l themename
とします。bashprompt は、 /.bash_profile
に必要なテーマを設定します。サブシェル用に設定するには、
bashprompt -s themename
とすると、 /.bashrc が変更されます。
PS? 文字列の設定を永続させるの章には、 /.bashrcに PS? 文字列を置くことの重要性が書かれていますので、参照して下さい。
現在の端末のプロンプトを変えるには、上の elite 関数の例を使えば、
source elite
の後、elite
とします(eliteファイルが
現ディレクトリにあるとして)。これは結構手間がかかります。環境にも
elite関数が保存されてしまっていますが、これはunset elite
で
解放することができます。シェルスクリプトで処理するのがいいと思うでしょうが、
ここではうまくいきません。スクリプトでは現在の環境を変えることが
できないからです。スクリプトの動いているサブシェルの環境を変えるだけ
です。スクリプトが終了すると、サブシェルも終了し、スクリプトによって
変化した環境は失われます。
現在のシェルの環境変数を変えるには、環境関数を用いる必要があります。
bashprompt パッケージでは、callbashprompt という関数が環境に呼び込まれます。
これについてのドキュメントはありませんが、この関数を使うとその場で
bashprompt のテーマをロードすることができます。インストールされた
テーマディレクトリに探しにいきますので、あなたが使いたいテーマ
ファイルはこのディレクトリにいれておかなければなりません。ついで、
関数を解析し、実行し、メモリを解放します。環境領域はふくらんでいきません。
callbashprompt はこのような使われ方を想定していませんし、エラーチェックも
行ないませんが、そのことだけ覚えておけばうまくいきます。