Я безуспешно обновил свои версии Bash до 3.2.48 с помощью MacPorts.
Кажется, что у меня нет активной, так как я получаю
echo $BASH_VERSION
3.2.17(1)-release
Как вы можете создать новый Bash активный, чтобы получить его для моей оболочки входа?
Ответ 1
Запустите следующий код, например, чтобы сменить оболочку на новейший Bash, установленный MacPorts
chsh -s /opt/local/bin/bash
Если это дает вам сообщение,
"non-standard shell"
вам нужно будет добавить
/opt/local/bin/bash
to
/etc/shells
Обратите внимание, что /etc/shells - это просто текстовый файл, поэтому вы можете редактировать его напрямую, если вы аутентифицируете его как root. Вы можете программно изменить его командой
У меня есть другой пример использования dscl на моем blog, если это помогает.
Ответ 3
Вы можете переключить свою оболочку входа из существующей оболочки входа в Mac OS X (по умолчанию ее /bin/bash, поставляемой с Mac OS X), в MacPorts /opt/local/bin/bash только с помощью следующей оболочки script:
#!/opt/local/bin/bash
if [ `grep /opt/local/bin/bash /etc/shells` ];
then
echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash;
else
echo /opt/local/bin/bash | sudo tee -a /etc/shells;
chsh -s /opt/local/bin/bash;
fi