Я безуспешно обновил свои версии Bash до 3.2.48 с помощью MacPorts.
Кажется, что у меня нет активной, так как я получаю
echo $BASH_VERSION
3.2.17(1)-release
Как вы можете создать новый Bash активный, чтобы получить его для моей оболочки входа?
Я безуспешно обновил свои версии Bash до 3.2.48 с помощью MacPorts.
Кажется, что у меня нет активной, так как я получаю
echo $BASH_VERSION
3.2.17(1)-release
Как вы можете создать новый Bash активный, чтобы получить его для моей оболочки входа?
Запустите следующий код, например, чтобы сменить оболочку на новейший Bash, установленный MacPorts
chsh -s /opt/local/bin/bash
Если это дает вам сообщение,
"
non-standard shell
"
вам нужно будет добавить
/opt/local/bin/bash
to
/etc/shells
Обратите внимание, что /etc/shells
- это просто текстовый файл, поэтому вы можете редактировать его напрямую, если вы аутентифицируете его как root. Вы можете программно изменить его командой
sudo -s
Password:
# echo /opt/local/bin/bash >> /etc/shells
Если ваша первая команда chsh не удалась, запустите ее снова, если вам удалось изменить вышеуказанный файл.
Я предполагаю, что он установлен, но не используется в качестве вашей оболочки входа.
Вы можете изменить оболочку с помощью dscl в командной строке.
В командной строке dscl введите следующее:
list Local/Default/Users
read Local/Default/Users/<your username here>
change Local/Default/Users/<your username here> UserShell /bin/bash /opt/local/bin/bash
У меня есть другой пример использования dscl на моем blog, если это помогает.
Вы можете переключить свою оболочку входа из существующей оболочки входа в 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