次のページ 前のページ 目次へ

8. プロンプトを変える

8.1 プロンプトを変える、後で

この HOWTO での説明で、環境変数 PS1 の作り方や、そのような PS1 や PS2 を  /.bashrc で呼べる関数にいれたり、bashprompt パッケージのテーマとして いれる方法を示してきました。

bashprompt パッケージを使うのに、bashprompt -iとやれば登録されて いるテーマの一覧が出てきます。ログインシェルのプロンプトを設定するには bashprompt -l themenameとします。bashprompt は、 /.bash_profile に必要なテーマを設定します。サブシェル用に設定するには、 bashprompt -s themenameとすると、 /.bashrc が変更されます。

PS? 文字列の設定を永続させるの章には、 /.bashrcに PS? 文字列を置くことの重要性が書かれていますので、参照して下さい。

8.2 プロンプトを変える、今すぐ

現在の端末のプロンプトを変えるには、上の elite 関数の例を使えば、 source eliteの後、eliteとします(eliteファイルが 現ディレクトリにあるとして)。これは結構手間がかかります。環境にも elite関数が保存されてしまっていますが、これはunset eliteで 解放することができます。シェルスクリプトで処理するのがいいと思うでしょうが、 ここではうまくいきません。スクリプトでは現在の環境を変えることが できないからです。スクリプトの動いているサブシェルの環境を変えるだけ です。スクリプトが終了すると、サブシェルも終了し、スクリプトによって 変化した環境は失われます。 現在のシェルの環境変数を変えるには、環境関数を用いる必要があります。 bashprompt パッケージでは、callbashprompt という関数が環境に呼び込まれます。 これについてのドキュメントはありませんが、この関数を使うとその場で bashprompt のテーマをロードすることができます。インストールされた テーマディレクトリに探しにいきますので、あなたが使いたいテーマ ファイルはこのディレクトリにいれておかなければなりません。ついで、 関数を解析し、実行し、メモリを解放します。環境領域はふくらんでいきません。 callbashprompt はこのような使われ方を想定していませんし、エラーチェックも 行ないませんが、そのことだけ覚えておけばうまくいきます。


次のページ 前のページ 目次へ