Obter o nome da plataforma cruzada do computador?

2

Estou criando uma mensagem de login para o meu computador dentro de /etc/bashrc e gostaria de cumprimentá-los no computador com o nome do computador.

Aqui está o meu código:

# (system stuff here)
echo "Welcome, $(whoami)."

Quando uso login em qualquer usuário, isso me dá o que eu esperava: Welcome, avgjoe , por exemplo.

No entanto, eu gostaria de fazer a saída Welcome, avgjoe, to Tower of Nix - o nome do meu computador já foi definido (através de Preferências do Sistema) para "Tower of Nix".

Portanto, sem codificá-lo lá (por exemplo, echo "Welcome, $(whoami), to Tower of Nix." ), como posso obter o nome do meu computador?

Já experimentei hostname , mas isso gera 192.168.2.13 .

Acontece, scutil --get ComputerName faz exatamente o que eu quero (saídas Tower of Nix ), mas quando eu olhei para a página de manual para scutil , ele declarou:

HISTORY

The scutil command appeared in the Mac OS X Public Beta.

Portanto, provavelmente não funcionará em todos os sistemas operacionais, como Linux, * BSD, etc.

Minha pergunta: Como posso obter o nome do computador em qualquer (ou quase qualquer) derivativo do UNIX?

    
por Florrie 31.07.2015 / 17:56

3 respostas

2

O Mac OS X é um dos poucos sistemas do tipo Unix que permite armazenar e recuperar um nome totalmente distinto do nome de host IP do computador. Provavelmente, é melhor para casos especiais a chamada para scutil ; se isso falhar, volte para o mais padrão hostname :

echo "Welcome, $(whoami), to $(scutil --get ComputerName 2>/dev/null || hostname)."
    
por 31.07.2015 / 20:36
4

Muitos, mas não todos, uname do sistema semelhante a Unix têm a opção n

    uname -n
    
por 31.07.2015 / 18:48
0

Hostnames no GNU / Linux são simplesmente dentro de um arquivo. Por exemplo, posso editar meu nome de host no Slackware alterando uma única linha em /etc/HOSTNAME .

Minha sugestão seria apenas para concatenar esse arquivo em seu comando no bashrc. Se o seu sistema não tiver um arquivo de nome de host em /etc , você pode simplesmente criar um. Além disso, você pode usar $USER em vez de whoami porque a variável USER é preenchida com o nome de quem está logado.

É assim que o comando pode parecer:

echo "Welcome, $USER, to 'cat /etc/HOSTNAME'"
    
por 31.07.2015 / 18:43

Tags