如何从MacOS上的powershell获取主机名?

时间:2018-06-09 11:16:00

标签: 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:无法解析主机名。"

3 个答案:

答案 0 :(得分:1)

这在Linux上对我有效:

"http://"+(get-content env:HOSTNAME)+":4001/v2/keys"

问题是在Linux上,主机名未正确填充,所以我得到了这个信息:

http://localhost.localdomain:4001/v2/keys

答案 1 :(得分:0)

这在macOS Catalina上对我有效:

$(hostname)

(PowerShell相当于bash语法“主机名”)

注意:其他建议的答案不起作用,因为环境变量$HOSTNAME在macOS上不存在:您必须运行命令hostname

答案 2 :(得分:0)

hostname 命令不会总是正确解析,因为它似乎是反向 dns 查找响应。要获取实际的计算机名称,请在 powershell cmd 行中使用它:

(scutil --get LocalHostName)

也可以用在这样的字符串中:

write-host "The Machine Name is: $(scutil --get LocalHostName)"