Na maioria das vezes, prefiro usar o shell de peixe no macOS, mas evito torná-lo o shell de login, porque acho que às vezes isso pode causar problemas.
Então, eu simplesmente adicionei exec fish
no final do meu .zshrc
, e é isso. O que significa que meu shell de login ainda é zsh, e minhas $PATH
modificações ainda estão em .zprofile
, mas quando eu abro o terminal, não preciso alternar para fish manualmente. Funciona bem para mim.
Mas então, e se eu ainda quiser mudar de fish para zsh por algum motivo específico? É possível de alguma forma? (Porque se eu simplesmente digitar zsh
e pressionar Return, serei imediatamente trocado de volta para fish, é claro.)
atualização: Há uma solução alternativa para usar zsh -c
, mas ela funciona apenas com alguns comandos.
Esta solução me parece introduzir mais problemas do que resolver :) Você pode simplesmente definir o shell padrão que o Terminal do macOS usa em sua configuração . Não há necessidade de definir o shell de login para algo diferente disso ou iniciar o shell do terminal de sua escolha a partir do shell de login. O que o terminal inicia é completamente independente do shell de login, ele apenas usa o shell de login se você não disser explicitamente "ei, quero que você inicie este programa!".
Fora isso, você pode verificar o ID pai de um
zsh
processo bem facilmente, e somente se for o executável do terminal, execute seufish
. Algo como, em vez de seu planoexec fish
:observe, novamente, que não acredito que esse seja o caminho a seguir, mas certamente é possível.
(Para descobrir o "/caminho/para/terminal do macos", eu usaria
pstree -h
; não sei se isso existe no macos)Você pode verificar uma variável:
E então, se você quiser iniciar o zsh, defina $SKIP_FISH como sim: