将连接到接口的 IP 地址设置为 shell 变量的脚本
Script to set IP address connected to an interface to a shell variable
我想编写一个脚本来将连接到 "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
并在其他脚本中使用它。
知道怎么做吗?
试试这个:
Variable=$(ip addr | grep inet | grep eth0 | awk -F" " '{print }'| sed -e 's/\/.*$//')
您的 ARP table 不是查找本地 IP 地址的正确来源。请尝试使用 ip
命令:
RASPBERRY_IP=$(ip addr | awk -F"[ /]" '/inet .*eth0/{print }')
如果您想在您的网络中找到另一个 IP 地址,您可以使用您的 ARP table。试试这个命令:
RASPBERRY_IP=$(arp -ai eth0 | cut -d' ' -f2 | sed 's/[()]//g')
请注意,如果您的 ARP table 在 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 缓存中删除条目。
我想编写一个脚本来将连接到 "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
并在其他脚本中使用它。
知道怎么做吗?
试试这个:
Variable=$(ip addr | grep inet | grep eth0 | awk -F" " '{print }'| sed -e 's/\/.*$//')
您的 ARP table 不是查找本地 IP 地址的正确来源。请尝试使用 ip
命令:
RASPBERRY_IP=$(ip addr | awk -F"[ /]" '/inet .*eth0/{print }')
如果您想在您的网络中找到另一个 IP 地址,您可以使用您的 ARP table。试试这个命令:
RASPBERRY_IP=$(arp -ai eth0 | cut -d' ' -f2 | sed 's/[()]//g')
请注意,如果您的 ARP table 在 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 缓存中删除条目。