用于将连接到shell变量的接口的IP地址设置的脚本

时间:2015-08-11 08:03:44

标签: shell gnome-terminal

我想编写一个脚本来将连接到“eth0”之类的接口的设备的IP地址设置为变量。 我可以通过这个命令获取IP地址:

arp -i eth0 -a

上述命令的输出为:

? (10.42.0.38) at b8:27:eb:07:5d:60 [ether] on eth0

我想在.bashrc文件中添加一个脚本,将IP地址从上面的命令输出设置为变量$RASPBERRY_IP,并在其他脚本中使用它。 知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

Variable=$(ip addr | grep inet | grep eth0 | awk -F" " '{print $2}'| sed -e 's/\/.*$//')

答案 1 :(得分:1)

您的ARP表不是查找本地IP地址的正确来源。请改为使用ip命令:

RASPBERRY_IP=$(ip addr | awk -F"[ /]" '/inet .*eth0/{print $6}')

如果要在网络中查找其他IP地址,可以使用ARP表。试试这个命令:

RASPBERRY_IP=$(arp -ai eth0 | cut -d' ' -f2 | sed 's/[()]//g')

请注意,如果您的ARP表包含更多关于eth0的条目,$RASPBERRY_IP将包含更多IP地址!示例:10.42.0.38 10.42.0.39 10.42.0.40。添加带有覆盆子MAC地址的grep。如果您只想要第一个条目,请将其更改为:

RASPBERRY_IP=$(arp -ai eth0 | cut -d' ' -f2 | sed 's/[()]//g;q')

请不要忘记ARP会在一段时间后(通常在Unix下5分钟)从ARP缓存中删除条目。

相关问题