使用 awk 命令主机

使用 awk 命令主机

请问为什么“echo”指令:

iphost="$(ssh root@$machine -x "host $machine | awk '/has address/ { print $4 }'")"
echo $iphost

展示:

g-3.xx.yyy.zz has address 172.16.65.35

代替:

172.16.65.35

非常感谢您的帮助。

此致。

答案1

您应该在 awk 命令中使用转义序列反斜杠 (\),如下所示。由于您在双引号内使用该命令,因此变量将在执行之前解析。因此它将尝试将 $4 理解为系统变量并尝试解析它。如果您使用转义序列反斜杠,它将保留 $4 到 awk 命令。

iphost="$(ssh root@$machine -x "host $machine | awk '/has address/ { print \$4 }'")"
echo $iphost

答案2

在 ~/.bashrc 或类似文件中尝试此操作

export iphost="$(echo $SSH_CLIENT | awk '{print $1}')"

相关内容