ターミナルを開いたときに ~/.profile が実行されない?

ターミナルを開いたときに ~/.profile が実行されない?

どういうわけか、私の bash プロンプトは「elementary:~ steven$」に変更されてしまいました。これをデフォルトのプロンプトに戻したいです。まず、次のコードを ~/.bashrc に追加し、次に ~/.profile に追加しました。

export PS1="\s-\v\$ "

ターミナルを開いたときに、どちらも実行されません。どちらかのファイルでコマンドを実行すると、sourceそのセッションの残りの間は正常に動作します。

ここで何か見落としている点はありますか?

編集: Ian が提案した出力は次のとおりです。

elementary:~ steven$ bash --login --verbose
# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi
/usr/libexec/path_helper -s
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/AVRMacPack/bin"; export PATH;

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
if [ -e "/usr/local/AVRMacPack" ]; then
PATH="$PATH:/usr/local/AVRMacPack/bin"
export PATH
fi

# Setting PATH for Python 3.2
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
export PATH
elementary:~ steven$ which bash
which bash
/bin/bash

答え1

.bashrcbash のマニュアル ページによると、非対話型シェルに対してのみ実行されます。

.bash_profileログインシェルに対して実行されます。

この.profileファイルは Korn シェルによってロードされます。bash がこれにまったく注意を払っているかどうかはわかりません。bash のマニュアル ページにはこれに関する記述が見つかりませんでした。

OS X では、Terminal.app プログラムは、開く新しい Terminal.app ウィンドウごとにログイン シェルを実行します。

したがって、プロンプト設定を に配置します.bash_profile

では、常に次の操作を実行できます.bash_profile。これは珍しいことではありませんが、どのような影響があるかはわかりません。

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

そうすれば、2 つのファイルを保守する必要がなくなります。

答え2

間違っているかもしれませんが、シェルが bash の場合は、それを .bashrc ではなく ~/.bash_profile に配置する必要があります。

答え3

もしあなたがバッシュコントロール何らかの理由でターミナルをロードしたい場合。プロフィール毎回のセッションで、~/.bash_プロファイルそのようです:

if [ -f ~/.profile ]; then
   source ~/.profile
fi

...そして新しいセッションを開始して、すべてが正常に戻ったかどうかを確認します

関連情報