我想知道是否有可能dynamic读取networking接口的IP地址在bash脚本中使用。 就像是:
#!/bin/bash MYPUBLICIP= get_eth0_address MYPRIVATEIP= get_eth0:0_address
[背景]我正在尝试编写一个脚本来将各种规则应用于一组VPS的iptables。 我试图避免必须摆弄每台机器的个人IP地址。
即使您指定了虚拟接口, ip也将始终返回物理接口的所有地址logging。
ifconfig让我们指定一个单一的接口,但是更麻烦的parsing:
ifconfig eth0:0 |awk -F':| ' '/inet addr/{print $13}'
编辑
当然, ip方式可以用更多select性的awk进行pipe理:
ip -o -4 addr sh |awk '/eth0:0/{print $4}'
就像是
ip -4 -o addr show dev eth0 | sed 's/\// /g' | awk '{print $4}'
应该给你相关接口的裸IP地址。