fix: set zsh as default shell when init it

This commit is contained in:
2026-05-10 14:13:37 +08:00
parent 9edcf1ffb4
commit fd0d59a7df
+17 -4
View File
@@ -14,13 +14,26 @@ ln -sf "$ZSHRC_REPO" "$ZSHRC_HOME"
echo " $ZSHRC_HOME -> $ZSHRC_REPO" echo " $ZSHRC_HOME -> $ZSHRC_REPO"
if [[ ! -d "$HOME/.oh-my-zsh" ]]; then if [[ ! -d "$HOME/.oh-my-zsh" ]]; then
echo "安装 Oh My Zsh(--unattended:不改默认 shell、不自动进 zsh;--keep-zshrc:保留已链接的 .zshrc)…" echo "安装 Oh My Zsh(--unattended:安装脚本内不改 shell、不自动进 zsh;--keep-zshrc:保留已链接的 .zshrc)…"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended --keep-zshrc sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended --keep-zshrc
else else
echo "Oh My Zsh 已存在,跳过安装 (~/.oh-my-zsh)" echo "Oh My Zsh 已存在,跳过安装 (~/.oh-my-zsh)"
fi fi
echo "" echo ""
echo "完成。当前仓库的 .zshrc 已启用 z 插件(Oh My Zsh plugins/z)。" echo "将默认登录 shell 设为 zsh"
echo "未修改默认登录 shell;若需临时使用: zsh" zshpath="$(command -v zsh)"
echo "本机额外配置可写入 ~/.zshrc.local(不会被链接覆盖)。" if [[ -z "$zshpath" || ! -x "$zshpath" ]]; then
echo "错误: 找不到可执行的 zsh,请先安装 zsh。" >&2
exit 1
fi
if grep -qxF "$zshpath" /etc/shells 2>/dev/null; then
echo " $zshpath 已在 /etc/shells 中"
else
echo "$zshpath" | sudo tee -a /etc/shells
fi
chsh -s "$zshpath"
echo ""
echo "完成。当前仓库的 .zshrc 已启用 z 插件(Oh My Zsh plugins/z),默认 shell 已改为: $zshpath"
echo "请重新登录或新开终端后生效。本机额外配置可写入 ~/.zshrc.local(不会被链接覆盖)。"