18

У меня есть ~/.bash_profile, который я хотел бы вызывать каждый раз, когда создается новый экран GNU, так что все мои псевдонимы работают на экране GNU, как они работают в терминале.

В этот раз так выглядит мой ~/.screenrc.

hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "

5 ответов5

29

shell -$SHELL

Добавьте строку выше в ваш ~/.screenrc , это запустит экран, используя оболочку входа в систему, которая загрузит ваш ~/.bash_profile .

2

Некоторые приложения Mac используют .bash_profile, а некоторые - .bashrc. Я не выяснил какого-либо конкретного правила для того, чтобы знать, какое из них загружается, но для согласованности это мой .bash_profile:

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

Я добавил .bashrc файл, который просто содержит:

[[ -s ~/.bash_profile ]] && source ~/.bash_profile

Таким образом, любая программа, такая как экран GNU, которая ищет .bashrc, найдет его и отправит мой .bash_profile.

0

Я решил эту проблему, переместив все содержимое ~/.bash_profile в ~/.bashrc. Видимо screen вызывает ~/.bashrc перед каждым окном. - Надаль 6 мая 2010 года в 21:22

Этот комментарий является правильным ответом.

0

Проблема немного расплывчата; Файлы запуска оболочки запускаются экраном при создании окон, поэтому у вас нет ощущения, будто что-то неправильно настроено в вашем .bashrc или .bash_profile. Я не сталкивался с этим с помощью экрана на OS X.

Вы пробовали iTerm вместо экрана? Я использую его исключительно на своем Mac, а затем использую экран на серверах, которые я администрирую.

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