Você pode fazer isso:
case "$HOSTNAME" in:
systemA*|systemB)
# some local definitions here
;;
systemC*|systemD)
# some local definitions here
;;
*)
if [ "$(uname)" = "Darwin" ]; then
echo "I'm on a Mac!"
else
echo "No bashrc definitions for $HOSTNAME"
fi
esac
uname
fornecerá várias informações básicas sobre o sistema em que você está. uname --help
para opções.
Atualização:
Como alternativa (e é isso que eu faço, você pode ver aqui em o fim da minha .bashrc) o que você pode fazer é criar .bashrc_local_Darwin
para configuração específica do Mac e .bashrc_local_Linux
para coisas específicas do Linux. Estes podem entrar em controle de versão como eles ainda são gerais para todos os macs e todas as caixas de linux que você conecta. Então, o que você faz é criar um .bashrc_local
em cada caixa que você quer de uma configuração personalizada somente para aquela caixa que você não coloca no controle de versão. Você, então, fonte esses arquivos se eles existirem , et volià, você tem um sistema muito limpo com a instrução case...esac
cludgy e difícil de manter.