これらは、~/.profile
13.10に付属の在庫の内容です(コメント行は削除されています)。
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
これはDebianから継承されていますが、Canonicalがそれを維持することにしたのはなぜですか?私の知る限り、これは標準的な* nix方式ではなく、これが発生しなかったさまざまなシステムを見てきましたので、それらには正当な理由があったに違いないと思います。これにより、ユーザーが~/.bashrc
ソースを取得することを想定していないログインシェルを実行するとき(たとえば、マシンに投入するときなど)に予期しない動作が発生する可能性があります。
私が考えることができる唯一の利点は、ユーザーを多くのスタートアップファイルと混同せず、ユーザーが.bashrc
単独で編集し、シェルタイプに関係なく読み取りできるようにすることです。ただし、ログインと対話型シェルで異なる設定を使用すると便利な場合が多いため、これは疑わしい利点です。また、ログインシェルはグラフィカル環境で実行されないことが非常に多く、これらのファイルに設定した内容によっては、エラーや警告、問題が発生する可能性があります。
それでは、なぜUbuntuはこれを行うのですか、何が欠けていますか?
.profile
source .bashrc
を実行する理由です。これは、すべてのLinuxバージョンに当てはまるわけではなく、その背後にある理論的根拠は疑問です。
-n "$BASH_VERSION"
bash以外ではどうして本当でしょうか?