Ответ 1
zsh использует профиль env ~/.zshrc
, а не ~/.bashrc
.
поэтому вам нужно добавить настройки env в файл .zshrc, а затем
source ~/.zshrc
Он должен работать.
Я обновил свою оболочку до ZSH. Когда я источник ~/.bashrc. Я получаю эту ошибку
Была некоторая ошибка в вашем докторе. когда я выполняю эту команду
echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc
/home/amerrnath/.bashrc:17: command not found: shopt
/home/amerrnath/.bashrc:25: command not found: shopt
/home/amerrnath/.bashrc:109: command not found: shopt
/usr/share/bash-completion/bash_completion:35: parse error near
]]
Пожалуйста, помогите мне решить эту проблему.
zsh использует профиль env ~/.zshrc
, а не ~/.bashrc
.
поэтому вам нужно добавить настройки env в файл .zshrc, а затем
source ~/.zshrc
Он должен работать.
Поместить что-нибудь в ~/.bashrc:
Переключитесь на bash:
exec bash
Тогда
source ~/.bashrc
Переход на bash не повлияет на новое окно терминала. Но если вы хотите переключить текущее окно на zsh.
Переключиться на zsh:
exec zsh
shopt
не является командой, а встроенной оболочкой. bash
знает, что с ним делать, потому что это bash
встроенный, но zsh не знает, что это такое. Вы захотите заглянуть в setopt
, который является zsh
Built-in, и поместите эти значения в новый .zshrc script.
Ваш файл bashrc
был написан для bash
. zsh
не bash
.
Я удивлен, что zsh
пытается загрузить ваш .bashrc
вообще.
Если это не так, и вы подбираете его вручную (от .profile
или аналогичного). Прекратите делать это.
Затем вы можете написать соответствующий файл zsh
.
Если вы хотите использовать zsh
, вам нужно использовать zsh
, а не bash
.
shopt
является bash -ism.
[[
является bash -ism.
Сделай псевдоним shopt и назови его бросил зш
Быстрое решение описано здесь: https://github.com/larz258/Zshopt
sudo vi /usr/bin/shopt
Внутри магазина
#!/bin/bash
args='';
for item in [email protected]
do
args="$args $item";
done
shopt $args;
сделать его исполняемым
sudo chmod +x /usr/bin/shopt
Создайте псевдоним в вашем .zshrc
echo "alias shopt='/usr/bin/shopt'" >> ~/.zshrc
По какой-то причине после обновления с 16.04 до 17.10 и до 18.04 символическая ссылка /bin/sh была возвращена в режим dash, а не bash. Обновление этой ссылки:
sudo cd /bin && ln -sf bash sh
решил эту проблему для меня
shopt
это не команда, а встроенная оболочка. Вы можете узнать это, запустив в bash следующую команду:
type shopt
вывод будет:
shopt is a shell builtin
решение: шаг1:
echo "#! /bin/bash\n\nshopt \$*\n" > /usr/local/bin/shopt
тогда вы получите /usr/local/bin/shopt:
#! /bin/bash
shopt $*
шаг 2:
chmod +x /usr/local/bin/shopt
шаг 3:
ln -s /usr/local/bin/shopt /usr/bin/shopt
step4:
echo "alias shopt='/usr/bin/shopt'" >> ~/.zshrc