Como deixar o .bashrc saber o sistema operacional atual

1

Eu tenho vários computadores Linux compartilhando um disco e uma pasta pessoal.

Isso é no disco, há a pasta pessoal: \home\wuciawe

E para o computador A, cujo sistema operacional é o Centos, ele carregará \home\wuciawe\.bashrc

Para o computador B, cujo sistema operacional é o Ubuntu, ele carregará \home\wuciawe\.bashrc , mesmo com o computador A.

Como não sou o administrador, eu construo e instalo algum software localmente no Ubuntu e adiciono algo ao caminho em \home\wuciawe\.bashrc .

Devido a alguma razão, algo adicionado ao Caminho traça uma contradição com o Centos.

Gostaria de saber se existe uma maneira de permitir que o .bashrc conheça o sistema atual, faça o seguinte:

if os is Ubuntu:
  Path = xxx:$PATH
  export PATH
endif
    
por 宇宙人 08.01.2015 / 07:39

2 respostas

0

Ubuntu

if grep -i Ubuntu /etc/lsb-release &>/dev/null
then
  export PATH=xxx:$PATH
fi

Notas

  • No shell, não há dois pontos no final de uma instrução if .

  • No shell, você não deseja espaços em nenhum dos lados de um sinal de igual em uma instrução de atribuição.

  • No shell, as instruções if são concluídas com uma instrução fi

CentOS

Existe uma solução análoga para o CentOS:

if grep -i CentOS /etc/centos-release &>/dev/null
then
  export PATH=xxx:$PATH
fi
    
por 08.01.2015 / 07:59
1

Você pode tentar usar o arquivo /etc/issue para os nomes dos sistemas operacionais. O conteúdo do arquivo é usado por getty para exibir uma mensagem de pré-login. Na página man de issue(5) :

The file /etc/issue is a text file which contains a message or system identification to be printed before the login prompt. It may contain various @char and \char sequences, if supported by the getty-type program employed on the system.

Por favor, veja o post do @ John2014 sobre como compilá-lo em um script de shell.

    
por 08.01.2015 / 08:58

Tags