如何从MacOS上的powershell获取主机名?
在Windows的Powershell脚本中,我有以下行:如何从MacOS上的powershell获取主机名?,macos,powershell,parsing,hostname,Macos,Powershell,Parsing,Hostname,在Windows的Powershell脚本中,我有以下行: $etcdBaseUrl = "http://$env:computername.local:4001/v2/keys"; 当我在终端中键入:hostname时,它返回计算机名,如:User1234.local 现在我正试图在Mac OS上的Powershell中运行它。我已尝试将参数$env:computername.local替换为$env:hostname,但收到此错误 错误:“无效URI:无法分析主机名。” 这在linux上适
$etcdBaseUrl = "http://$env:computername.local:4001/v2/keys";
当我在终端中键入:hostname
时,它返回计算机名,如:User1234.local
现在我正试图在Mac OS上的Powershell中运行它。我已尝试将参数$env:computername.local
替换为$env:hostname
,但收到此错误
错误:“无效URI:无法分析主机名。”
这在linux上适用于我:
"http://"+(get-content env:HOSTNAME)+":4001/v2/keys"
问题是Linux上的主机名填充不正确,因此我得到以下结果:
http://localhost.localdomain:4001/v2/keys
这在macOS Catalina上对我很有效:
$(hostname)
(它是与bash语法“hostname”等效的PowerShell)
注意:其他建议的答案不起作用,因为macOS上不存在环境变量
$HOSTNAME
:您必须运行命令HOSTNAME
。HOSTNAME该命令无法始终正确解析,因为它似乎是一个反向dns查找响应。要获取实际的计算机名,请在powershell cmd上使用此命令行:
(scutil --get LocalHostName)
也可以在如下字符串中使用:
write-host "The Machine Name is: $(scutil --get LocalHostName)"
尝试“echo$HOSTNAME”此命令的问题是HOSTNAME命令执行反向IP查找,可能不正确。请改用此命令:$(scutil--获取本地主机名)