Подтвердить что ты не робот

Лучшая практика для Bash загрузочных файлов на Mac

Как я понимаю, порядок, в котором загружаемые файлы считываются оболочкой bash на Mac,...

  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

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

Как говорится, есть ли наилучшая практика, какой из этих файлов должен быть моим единственным верным файлом bash?

С одной стороны, если .bash_profile будет иметь приоритет над любым другим потенциальным файлом запуска, тогда это нужно использовать, потому что вы можете быть уверены, что в 100% случаев информация в этом загрузочном файле запускается.

С другой стороны, если .profile - это файл, который существует в системах Mac по умолчанию, и файл .bash_profile должен быть создан вручную, возможно, это должно быть использовано, и никогда не будет причины создавать .bash_profile файл.

Мысли?

4b9b3361

Ответ 1

Это зависит от того, используете ли вы оболочки, отличные от bash, и используете ли вы bash -онные функции в своем профиле. Если вы используете другие оболочки sh-style (sh, ksh, zsh и т.д., Но не csh или tcsh), не используйте bash -все функции и хотите, чтобы одна и та же настройка неважно, в какой оболочке вы находитесь, вы должны использовать.профиль. Если вы хотите использовать функции bash -only, используйте .bash_profile. Если вы хотите использовать несколько оболочек, но также используйте функции bash -only, поместите общий материал в .profile и bash -в основном в .bash_profile, затем добавьте if [ -f ~/.profile ]; then . ~/.profile; fi в .bash_profile.

Если вы используете только bash, но не полагаетесь на какие-либо функции bash только в своем профиле, это не имеет большого значения.

На самом деле есть еще одно осложнение: login bash shells source либо .bash_profile,.bash_login или .profile; вместо интерактивных bash оболочек (например, подоболочек) вместо входа вместо .bashrc. Я, как правило, хочу иметь такую ​​же настройку как в логических, так и в недействительных оболочках, поэтому я помещаю все интересные вещи в .bashrc, а затем if [ -f ~/.bashrc ]; then . ~/.bashrc; fi в .bash_profile. Если бы я также использовал другие оболочки, я бы, скорее всего, поместил большинство из них в .profile и вместо этого имел источник .bashrc.

Ответ 2

На всякий случай у меня была проблема до того, где у меня где-то была потерянная конфигурация, и мне пришлось долго находить ее, главным образом потому, что я был noob.

Я изучал эти файлы для пользователей, которые эти пользователи очень хорошо определили, но настройка была установлена ​​на/etc/profile.

На всякий случай.