завершение удара только после определения источника .bash_profile

У меня есть установленное использование завершения удара macports и после строк в моем .bash_profile

if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi

но завершение не работает, когда я открываю Terminal, однако это начинает работать после определения источника .bash_profile или после 'удара-l'.

Я выполняю OSX 10.6, в Терминальных предпочтениях существует "Shell, открывается: оболочка входа в систему По умолчанию (/usr/bin/login)" выбранный.


Решенный: То, что я пропустил, является строкой в том, Как использовать завершение удара

Удостоверьтесь, что Вы добавляете это после любого управления ПУТЕМ как иначе, завершение удара не будет работать правильно.

когда я переместил строки после управления ПУТЕМ, все хорошо работает.

1
задан 02.04.2011, 12:11

1 ответ

Я использовал бы chsh команда для проверки оболочки является на самом деле Bash; если Ваша оболочка /bin/sh вместо /bin/bash, Bash будет подражать исторической оболочке и не будет читать ~/.bash_profile.

От man bash:

Если удар вызывается с именем sh, это пытается подражать поведению запуска исторических версий sh максимально тесно при приспосабливании стандарту POSIX также. При вызове как интерактивная оболочка входа в систему или неинтерактивная оболочка с - опция входа в систему она сначала пытается считать и выполнить команды от/etc/profile и ~/.profile в том порядке.

[...]

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

1
ответ дан 17.12.2019, 00:22

Теги

Похожие вопросы