質問: unix(bシェル)のプロンプトについて bシェルのプロンプトの設定は環境変数ps1に変えたい文字列を入れればokですが、現在自分のいるディレクトリ名を表示させたい場合はどのようにしたらいいでしょうか。 ps1="["`pwd`"]" などと設定してもディレクトリが変わったらその設定したときのディレクトリ名のままです。 また、ユーザ名も表示したいのですがsuコマンドでユーザ名を切り替えた場合プロンプトに表示させたユーザ名も変更させることはできるのでしょうか?
回答: sh から派生した bash や、zsh ならば、ps1 に適当な記号を設定 すると、ご希望のことができますが、本来の sh では、ps1の設定 だけでは無理かと思います。もっとも、sh といいつつ、bash か zsh か他の拡張された sh を使っている場合もあるので、詳細はマ ニュアルを見た方がいいと思います。 bash 系ならば、\u でユーザ名、\w でディレクトリ名に展開され ます。zsh 系ならば、%n でユーザ名、%d か %~ でディレクトリ名 に展開されます。 もしこういった機能がなくて、alias 機能があるなら、cd と su を alias して、ps1 を変更してから実際のコマンドを実行するよ うにするという手もあるでしょう。