Para sair do arquivo bashrc
quando a sessão do shell que está obtendo não é interativa, você pode fazer o seguinte na parte superior (ou em um local conveniente) do arquivo:
case "$-" in
*i*) ;;
*) return ;;
esac
O valor em $-
é uma sequência de letras indicando as opções de shell atualmente definidas. Se o caractere i
estiver presente na sequência, o shell será interativo.
Isso pode ser necessário, pois, como apontado nos comentários, o Bash trata as sessões shell iniciadas por sshd
, o daemon SSH, como um caso especial.
Detalhes: Por que o bashrc verifica se o shell atual é interativo?
Mais abaixo no arquivo, você pode verificar se o fish
shell está disponível e começar assim:
if command -v fish 2>/dev/null; then
exec fish
fi
Esteja ciente de que fish
pode ser o jogo de "Go Fish" em alguns sistemas: -)
Sobre o uso de command -v
: Por que não usar "qual"? O que usar então?