从 .local ping 获取 IP 地址到变量中

从 .local ping 获取 IP 地址到变量中

我想获取.local主机名的 IP 地址,这样我就可以 ssh 进入它,似乎host hostname.local在这种情况下不起作用

ssh [email protected]不起作用,所以我正在尝试取而代之。ssh [email protected]

.local我发现将主机名(不是 dns)转换为 IP 地址的命令是一个简单的ping命令。

这是 ping 的结果

PING 5153F344.local (192.168.8.105) 56(84) bytes of data.
64 bytes from 192.168.8.105: icmp_seq=1 ttl=64 time=0.524 ms

--- 5153F344.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.524/0.524/0.524/0.000 ms

这是我失败的解决方案的众多变体之一:

# Note trying not to use single quotes so I can turn all these commands into an alias:
DEV_TERM_IP="$(ping -c 1 5153F344.local) | cut -d \"(\" -f2 | cut -d \")\" -f1 | echo"
ssh "me@$DEV_TERM_IP.local"

答案1

我会尝试

 DEV_TERM_IP=$(ping -c 2 localhost| awk -F '[()]' '/PING/ { print $2}')

在哪里

  • -F '[()]'告诉 awk 使用 ( 或 ) 作为分隔符
  • /PING/grep 行与 PING
  • { print $2}打印第二个字段

相关内容