La respuesta correcta debería haber abordado su problema:
chsh: / usr / bin / zsh: shell no estándar
La razón por la que este es el caso es porque chshsolo aceptará shells que estén definidos en el archivo / etc / shells, como puede ver al leer el manual para chsh:
chsh aceptará la ruta completa de cualquier archivo ejecutable en el sistema. Sin embargo, emitirá una advertencia si el shell no aparece en el archivo / etc / shells.
Para resolver este problema y hacer que zsh sea el shell predeterminado, debe:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
Obviamente, supongo que eso zshestá en tu camino aquí. Esta solución también funcionará si, por ejemplo, elige instalar la última versión zshcon brew install zsh.
EDITAR (gracias por ThisIsFlorianK por el comentario) :
Dependiendo de la configuración de su shell, puede recibir un mensaje que diga /etc/shells: Permission denied. Puede encontrar información sobre este problema aquí.
Para solucionarlo, utilice lo siguiente en su lugar:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
chsh -lsalida? (Si eso no funciona, ¿cuál es el contenido/etc/shells?) ¿Está seguro de que esto está fallando y no solo una advertencia? ¿Agregar/usr/bin/zshallí hace que esto funcione?