
複数のパラメータを表示するようにカスタマイズされたPS1があります。別のグループに切り替えると、newgrp
PS1はデフォルト($)に切り替えられ、迷惑になります。変更されたグループからデフォルトグループに戻っても、デフォルトグループはそのまま残ります。
これを停止し、.profileに設定したPS1を保持する方法はありますか?
>uname -a
SunOS he2unx207 5.10 Generic_147440-19 sun4u sparc SUNW,Sun-Fire-880
もちろん、newgrpの後に.profileをソースとして使用すると、PS1は正しく適用されますが、newgrpが.profileに設定されている内容を効果的にキャンセルするため、迷惑になります。リンクされた有効なグループだけを変更でき、他の設定を変更できないのはなぜですか?
答え1
エクスポートした場合は、PS1
この値をリセットしないでください。ソラリスの惑星からnewgrp マンページ:
エクスポートされていない変数は null またはデフォルト値にリセットされます。エクスポートされた変数はその値を保持します。システム変数(たとえば
PS1
、、、および)は、システムPS2
またはユーザーがエクスポートしない限り、デフォルト値にリセットされます。たとえば、ユーザーに$(デフォルト)()以外のデフォルトのプロンプト文字列があり、エクスポートされていない場合、newgrpがエラーで終了しても、ユーザーのデフォルトのプロンプト文字列はデフォルトのプロンプト文字列$に設定されます。シェルコマンドのエクスポート((1)と(1)を参照)は、新しいシェルが呼び出されたときに割り当てられた値を保持するように変数をエクスポートする方法です。PATH
HOME
PS1
PS1
PS1
sh
set
あるいは、ログインしたばかりの環境を再初期化する-
ためにフラグを渡すこともできます。newgrp