将 IP 地址分配给环境变量

use*_*863 12 linux shell networking ip

如何尽可能轻松地将 eth0 的 IP 地址分配给环境变量,例如 $ip?

更新:发行版是 Ubuntu Server 12.04 LTS。

ott*_*t-- 6

更短(我觉得更简洁)的方法是hostname -i. 不再有 ipconfig、ip、sed、awk 等的麻烦。

  • +1,尽管请注意我的联机帮助页显示: *-i:显示主机名的网络地址。请注意,这仅在可以解析主机名的情况下才有效。避免使用此选项;请使用主机名 --all-ip-addresses 代替。* (3认同)

Gil*_*not 1

尝试这样做:

ip=$(
    ifconfig eth0 |
    perl -ne 'print $1 if /inet\s.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/'
)
echo "$ip"
Run Code Online (Sandbox Code Playgroud)

  • 如果您认为答案有用,您可以“投票”。您也可以通过单击“复选标记”的轮廓(将为绿色)来“接受”答复,这样,搜索 stackexchange 网站的人就会知道该问题得到了很好的回答。这就是 stackechange 网站的工作原理,谢谢;) (2认同)