Mac下zsh版本更新后报错 login: /usr/local/Cellar/zsh/5.7.1/bin/zsh-5.7.1: No such file or directory 解决办法

事件发生前要

今天真是闲的肉疼更新了一下执行完 brew update 安装一个scrcpy,结果致使 zsh 也被更新由原来的 5.7.1 更新至 5.8,然后我就悲催了打开终端死活都是如下报错

Last login: Sat Sep  5 00:22:07 on ttys000
login: /usr/local/Cellar/zsh/5.7.1/bin/zsh-5.7.1: No such file or directory

[进程已完成]

报错截图

解决办法

一开始我是懵逼的状态,因为现在这种情况我都没有命令行可以用。发生这种情况,只能求助百度怎么定位该文件夹。⌘command+⇧shift+G快捷键可以快速定位到文件夹。
果然发现 /usr/local/Cellar/zsh/文件夹下没有 5.7.1 这个文件夹了。取而代之的是 5.8 这个文件夹,我想一定是我用 brew 安装软件的时候顺带也把zsh 也给我更新了,哎,我真是谢谢您哦!!
zsh文件夹下只有 5.8 文件夹

回想一下我安装 zsh 的时候有记备 Mac 终端窗口配置 oh-my-zsh,这里面有我怎么切换到 zsh 下的。既然如此就再切换到当前 5.8 版本下不就行了吗?
可是如何执行命令呢?因为此时的终端打开因为找不到正确的路径就报错终止进程的,幸好在终端窗口下 ⇧shift+⌘command+N 快捷键可以新建命令(不要勾选「在 shell 中运行命令」)依次参考当初切换命令再修改一遍。

sudo vi /etc/shells

修改其中配置的 zsh 路径「/usr/local/Cellar/zsh/5.7.1/bin/zsh-5.7.1」为当下正确的路径「/usr/local/Cellar/zsh/5.8/bin/zsh-5.8」如下所示

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
# /bin/zsh
# /usr/local/Cellar/zsh/5.7.1/bin/zsh-5.7.1
/usr/local/Cellar/zsh/5.8/bin/zsh-5.8
~                                                                               
~                                                                               
~                                                                               
~                                                                               
:wq

将当前 bash 终端切换为5.8 这个 zsh, 使用 chsh -s 路径 然后输入密码,重启就行了。我也不确定是不是必需要执行这一步,反正我执行一遍也无可厚非

chsh -s /usr/local/Cellar/zsh/5.8/bin/zsh-5.8

然后我的 zsh 又回来了,愉快解决!!!

原文地址:https://www.cnblogs.com/himonkey/p/13616869.html