Alternativa ao nome do host para bashrc específico do sistema

3

Um conjunto de servidores em que o SSH usa uma instrução switch no padrão .bashrc para fazer configurações específicas do sistema:

case "$HOSTNAME" in:
    systemA*|systemB|)
        # some local definitions here
        ;;
    systemC*|systemD|)
        # some local definitions here
        ;;
    *)
        echo "No bashrc definitions for $HOSTNAME"
   esac

Mas eu também uso o bash no meu Mac localmente, então decidi ser smartarse e estender esta declaração para incluir um caso para quando eu não estou usando o SSH em outra declaração.

No entanto, o Mac geralmente altera meu nome de host preferido com base no meu ambiente de rede (geralmente quando estou conectado ao trabalho, em vez de Wi-Fi em casa, mas suponho que isso se deva a a configuração DHCP). Estou ciente de que posso substituí-lo, mas é a melhor ideia? Existe uma solução melhor para ter configurações bashrc que só estão em vigor quando não estou em um shell remoto?

    
por rensa 06.04.2017 / 04:58

1 resposta

2

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.

    
por 06.04.2017 / 05:48