Bash脚本获取所有IP地址

我正在尝试编写bash脚本来获取服务器上的所有IP地址。该脚本应可在所有主要发行版上使用。这是我所拥有的:

ifconfig | grep 'inet addr:' | awk {'print $2'}

导致:

addr:10.1.2.3

addr:50.1.2.3

addr:127.0.0.1

我如何首先删除addr:前缀?第二,如何排除127.0.0.1

回答:

不需要grep。这是一种使用方法awk

仅列出地址:

ifconfig | awk -F "[: ]+" '/inet addr:/ { if ($4 != "127.0.0.1") print $4 }'

列出设备和地址:

ifconfig | awk -v RS="\n\n" '{ for (i=1; i<=NF; i++) if ($i == "inet" && $(i+1) ~ /^addr:/) address = substr($(i+1), 6); if (address != "127.0.0.1") printf "%s\t%s\n", $1, address }'

以上是 Bash脚本获取所有IP地址 的全部内容, 来源链接: utcz.com/qa/412731.html

回到顶部