如何获得工作机器的主机名?


7

我想知道如何获取正在使用的计算机的主机名(完全限定域名)?

这是我的脚本:

 #! /bin/sh    
 hostname=$(host $ipaddr | awk '{print substr($NF,1,length($NF)-1)}')
 echo $hostname
 $h= get the current hostname
 if [ $hostname -ne $h ]
 then
//instructions
 fi

hostname -s应该获得简短的主机名(减去FQDN的其余部分)主机名...即hostname=$(hostname -s)...?
Kinnectus

$HOST环境变量包含计算机的主机名。
theoden

1
OP是否可以更新有关他们是否需要FQDN或仅“短”主机名的问题?
Kinnectus

是的,我需要完全限定的域名。
研究者

回声$ HOST不显示任何内容
研究人员

Answers:


14

使用hostnameuname -n获取内核主机名(节点名)。

hostname -s 将仅给出相同的第一部分。

使用hostname -f得到FQDN -这还尝试将主机名转换为IP地址,然后再返回到一个域名。


使用主机名-f解析,请修改以下条件:$ h =如果[$ hostname -ne $ h]获取当前主机名。
研究者


var = $(hostname -f)echo $ var if [$ hostname -ne $ var] [:非法数字:
研究者

如果[“ $ hostname”!=“ $ var”]很好:)非常感谢。最好成绩。
研究者

0

使用环境变量可能很棘手,这可能与您使用的shell有关:有些shell使用$ HOST,另一些shell使用$ HOSTNAME。我会使用@grawity提到的uname -n选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.