4

Каким-то образом мое приглашение bash было изменено на «элементарный:~ 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

3 ответа3

5

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

.bash_profile выполняется для логинов.

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

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

Таким образом, вы хотите поместить вашу подсказку в .bash_profile .

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

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

Тогда вам не придется поддерживать два файла.

0

Если по какой-то причине вы испортили свой элемент управления bash и хотите снова загружать свой TERMINAL .profile в каждом сеансе, просто напишите свой ~/.bash_profile следующим образом:

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .