Bash脚本获取所有IP地址
我正在尝试编写bash
脚本来获取服务器上的所有IP地址。该脚本应可在所有主要发行版上使用。这是我所拥有的:
ifconfig | grep 'inet addr:' | awk {'print $2'}
导致:
addr:10.1.2.3addr: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