我正在尝试编写一个 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
?
最佳答案
ifconfig
已被 ip
废弃。它还具有标志 -o
可以编写易于解析的输出。使用 ip -4
仅显示 IPV4 地址。注意更简单的脚本,它已经排除了环回地址:
ip -o addr | awk '!/^[0-9]*: ?lo|link\/ether/ {print $2" "$4}'
或者如果您不想要网络:
ip -o addr | awk '!/^[0-9]*: ?lo|link\/ether/ {gsub("/", " "); print $2" "$4}'
关于linux - 获取所有 IP 地址的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12523872/