0

.profile私はbashで作業していますが、.bashrc、 、の違いにまだ慣れていません.bash_profile

私の望む結果は、Ruby バージョンをrvm gemset取得し、bash プロンプトに表示することです。

PS1="\$(~/.rvm/bin/rvm-prompt) $PS1"(xcode経由で).bash_profileに追加したところ、表示されました

ruby-1.9.3-p286 John-MacBook-Air:~ john$

私が得ようとしているのは

ruby-1.9.3-p286@rails3 $

「rails3」はの出力ですrvm gemset

John-MacBook-Air:~ johnプロンプトから削除するにはどうすればよいですか?

.profile と .bashrc に行を追加しようとしましたが、うまくいきませんでしたが、.bash_profile で動作するようです。これらのファイル間の明確化は大歓迎です。Macでrvmを実行しています。

解決

.bash_profile に以下を含めます

PS1='\W \$ '
PS1="\$(~/.rvm/bin/rvm-prompt) $PS1"

プロンプトは次のようになります

ruby-1.9.3-p286@rails3 ~ $ 
4

2 に答える 2

3

この行が問題です:

PS1="\$(~/.rvm/bin/rvm-prompt) $PS1"

あなたが言っているのは、「私のrvmプロンプトをPS1に追加してから、既存PS1のものを最後に置く」ということです。システムのデフォルトPS1はこれを設定しています:

PS1='\h:\W \u\$ '

その設定\hでは、ホスト名(ここでは「John-MacBook-Air」)、\Wホームディレクトリが省略された現在の作業ディレクトリ~\uはユーザーのログイン名(ここでは「john」)であり、ユーザー\$が通常のユーザーと、#rootとしてログインしている場合はオクトソープ()。OSXでは、これはデフォルトでに設定されています/etc/bashrc$PS1プロンプトを変更する場合は、新しい設定に戻るように再入力するのではなく、プロンプトの後半部分をカスタマイズする必要があります。ホスト名を削除するのが一般的ですが、現在の作業ディレクトリを削除しないことを強くお勧めします。ターミナルセッションで非常に役立つ情報です。ちょうど私の2セント。

そこに何を置くことができるかを確認するには、Bashでプロンプトを設定する方法についての情報を調べてください。

于 2012-10-15T15:25:58.127 に答える
2

私は bash を使用していますが、まだ .profile、.bashrc、.bash_profile の違いに慣れていません。

これは、システム構成によって異なります。そのためのマンページを読んでください。システム全体またはユーザー全体で動作を変更することもできます。

よりよく理解するためのいくつかの注意事項を次に示します。

  • ログインごとの初期化。(または: セッションの起動) ログイン シェルに対してのみ実行される起動ファイルがあります。私のシステムでは、環境変数のみを設定します。(環境変数は継承されるため、これは理にかなっています)。それらは/etc/profileor ~/.profilefor plainと呼ばれる場合がありshます。bashがシェルで、~/.bash_profileまたはがある場合~/.bash_login、デフォルトで代わりに (この順序で) それらが優先されます。セッション起動ファイルへの変更は、次回ログインするまで効果がないことに注意してください。また、 のような環境に変数をエクスポートすることを確認する必要がありますPS1=something ; export PS1
  • プロセスごとの初期化。Plainshの場合、デフォルトのプロセスごとの初期化ファイルはありませんが、ENV環境変数をそのファイルを指すように設定できます。にはbashBASH_ENV変数と~/.bashrcファイルもあります。プロセスごとの初期化ファイルは、エイリアスや関数定義など、プロセスごとのシェル設定 (環境を通じて継承できないもの) を保存できる場所です。

特定のファイルが実行されているかどうかだけを確認したい場合は、いつでも何かをエコーするか、またはのようなファイルに触れることができecho TESTますtouch /tmp/test

于 2012-10-15T15:13:38.163 に答える