web-dev-qa-db-ja.com

ターミナルが開いたときに〜/ .profileが実行されませんか? [OS X 10.6.8]

どういうわけか私のbashプロンプトが "elementary:〜steven $"に変更され、デフォルトのプロンプトに戻したいと思います。最初に〜/ .bashrcに、次に〜/ .profileに以下を追加しました。

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

ターミナルを開いても実行されません。いずれかのファイルでコマンドsourceを実行すると、そのセッションの残りの部分で正常に機能します。

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

編集:これはイアンが提案したものからの出力です:

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
4
Steven Zezulak

.bashrcは、bashのmanページに従って、非対話型シェルに対してのみ実行されます。

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

.profileファイルはKornシェルによってロードされます。 bashがこれにまったく注意を払っていることを私は知りません。 bashのmanページでそれへの参照を見つけることができませんでした。

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

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

.bash_profileではいつでも次のことができます。それは珍しいことではありませんが、それがどのような影響を与える可能性があるかは言えません。

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

そうすれば、2つのファイルを維持する必要はありません。

5
Ian C.

bash control何らかの理由で混乱し、TERMINAL 。profileをロードしたい場合=すべてのセッションで、〜/ .bash_profileのように記述します。

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

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

0
PYK

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

0
Zameer Manji