1

Я на OS X и использую iTerm2.

Я обновил свой профиль Bash на нескольких своих серверах, чтобы при входе в них по ssh я сразу мог видеть на вкладках, в каких полях я нахожусь. Когда я выхожу из сеанса ssh , оболочка, которая инициировала сеанс ssh больше не получает исходный ~/.bashrc (что я понимаю как обычная рабочая процедура), поэтому заголовки и цвета моих вкладок сохраняются с названиями и цветами, которые были из моего ssh сессия

Обычно, когда я выхожу из сессии ssh , я также выхожу из оболочки на компьютере, который я также использую физически. Но ради согласованности я хотел бы вернуть вкладки iterm2 к соответствующим заголовкам и цветам для оболочки, которую они представляют при выходе из сеанса ssh .

Есть ли способ получить исходный код моего .bashrc при выходе из сеанса ssh ?

Во всех ~/.bash_profile , ~/.bashrc и ~/.bash_logout меня есть следующие строки:

export PROMPT_COMMAND=''
echo -e "\033];test machine name\007"

Когда я выхожу из сеанса ssh , похоже, что ни один из этих файлов Bash в моем домашнем каталоге не создан для перепечатки заголовка вкладки. Когда я вручную поставляю их с source ~/.bashrc заголовок вкладки перепечатывается просто отлично. Таким образом, синтаксис не так.

2 ответа2

2

Есть ли способ получить исходный код моего .bashrc при выходе из сеанса SSH?

Да, определите функцию оболочки:

ssh() { command ssh "$@"; source ~/.bashrc; }
1

Если вы хотите, чтобы это было специфично для команды, то, вероятно, лучший подход - переопределить ssh (как упоминалось в другом ответе).

Если вы на самом деле предпочитаете что-то более общее, bash имеет переменную оболочки PROMPT_COMMAND вы можете настроить для запуска команды (или нескольких команд) до вывода приглашения оболочки, что произойдет сразу после того, как ssh (или любая другая команда) вернется в оболочку.

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