~/.profile не выполняется при открытии терминала?

~/.profile не выполняется при открытии терминала?

Каким-то образом моя подсказка bash изменилась на "elementary:~ steven$", и я хочу изменить ее обратно на подсказку по умолчанию. Я добавил следующее сначала в ~/.bashrc, а затем в ~/.profile:

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

Ни один из них не выполняется, когда я открываю Терминал. Если я запускаю команду sourceдля любого файла, она работает нормально до конца сеанса.

Может быть, я что-то упускаю из виду?

EDIT: Вот результат того, что предложил Ян:

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

.bashrcвыполняется только для неинтерактивных оболочек согласно странице руководства bash.

.bash_profileвыполняется для оболочек входа.

Файл .profileзагружается оболочками Korn. Не знаю, обращает ли bash на это внимание. Я не смог найти никаких ссылок на него в man-странице bash.

В OS X программа Terminal.app запускает оболочку входа для каждого нового открытого окна Terminal.app.

Итак, вы хотите поместить настройку подсказки в .bash_profile.

Вы всегда можете сделать следующее в .bash_profile. Это не редкость, но я не могу сказать, какие последствия это может иметь:

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

Тогда вам не пришлось бы вести два файла.

решение2

Я могу ошибаться, но если bash — ваша оболочка, вы должны поместить ее в свой ~/.bash_profile, а не в свой .bashrc.

решение3

В случае, если вы испортили свойуправление bashпо любой причине и вы хотите загрузить свой ТЕРМИНАЛ.профильв каждом сеансе снова просто напишите свой~/.bash_profileвот так:

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

...и начните новый сеанс, чтобы проверить, все ли вернулось в норму

Связанный контент