簡體   English   中英

用於設置連接到外殼變量接口的IP地址的腳本

[英]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 $2}'| sed -e 's/\/.*$//')

您的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')

不要忘記,一段時間后(在Unix下通常為5分鍾),ARP會從ARP緩存中刪除條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM