Всякий раз, когда я открываю новую вкладку в Терминале с помощью Cmd+ T, она открывает bash в том же каталоге, что и предыдущая вкладка. Это нормально работает, когда я в ~
каталоге, но если я где-нибудь еще, я получаю ошибку при загрузке.bashrc
Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$
Похоже, .bashrc
загружается через относительный, а не абсолютный путь, потому что, если я делаю source ~/.bashrc
, все работает гладко.
Я думаю, что это проблема, связанная с OS X Lion, потому что до обновления со Snow Leopard у меня не было такой же проблемы. Но это может быть вызвано тем, что терминал всегда открывается в ~
, я не помню, пытался ли он открыть один и тот же каталог.
Однако вопрос остается тем же, как я могу сделать загрузку Терминала ~/.bashrc
через абсолютный путь, а не относительный?
Ответы:
Терминал открывает оболочку входа в систему. Это значит,
~/.bash_profile
будет казнен, а~/.bashrc
не.Решение в большинстве систем состоит в том, чтобы «требовать»
~/.bashrc
в~/.bash_profile
: просто поместите этот фрагмент в ваш~/.bash_profile
:источник
[[ -s /file/path ]]
делает? Попытка поиска объяснения в Google не слишком проста.man bash
: -s file True, если файл существует и имеет размер больше нуля.man bash
) рассказывает об этом и объясняет это, глава INVOCATION (просто ищитеINVOCATION
после вызоваman bash
, набрав/INVOCATION
)Переименование
.bashrc
в.profile
(или мягком связывании последнего к первому) следует также сделать трюк. Смотрите здесь .источник
cd && ln -s ./.bashrc ./.profile
обратите внимание, что символические ссылки чувствительны к пути к файлу, я считаю, что использование приведенного выше синтаксиса работает, но, чтобы быть уверенным, вы можете использовать абсолютные пути в любом случае..profile
вы нарушите регулярностьsh
.У меня есть следующее в моем
~/.bash_profile
:Если бы я имел
.bashrc
вместо~/.bashrc
, я бы увидел тот же симптом, который вы видите.источник