linux下的接口类型,linux – 如何动态查找连接到系统的接口的名称和类型

我有一个用例,我需要动态配置一些文件,其中包括系统中存在的接口名称,例如eth0,wlan0.但是,当我更改系统时,它有时会更改为eth1或wlan1.从Ubuntu 14.04开始,以太网接口被命名为p2p1,p1p1就像这样,无线接口被命名为wlan0或wlan1.

所以我们可以说接口名称可以是任何东西,只要我们能找到什么样的接口给出什么名称就无所谓了.

我为此编写了一个小脚本,但我不知道是否有更好的方法可以找到适用于所有基于Linux的系统的脚本.

#!/bin/bash

# check if directory exist

DIRECTORY=/sys/class/net

wifi_interface=""

lan_interface=""

if [ -d "$DIRECTORY" ]; then

cd $DIRECTORY

ilist=`ifconfig -s | awk '{print $1}' | tail -n +2`

# array length

ilist_len=`echo "${ilist[@]}" | wc -l`

# empty array

il=

# Iterating over interfaces

for i in $(seq 1 $ilist_len)

do

iname=`echo $ilist | sed -n "$i"p`

echo $iname

if [ "$iname" != "lo" ]; then

cur_dir=$DIRECTORY/$iname

cd $cur_dir

if [ -d "$cur_dir/wireless" ]; then

wifi_interface=$iname

else

lan_interface=$iname

fi

fi

pwd

cd ~

done

exit 0

else

echo "Can't find the directories ! Something went wrong "

exit 0

fi

在上面的脚本中,我根据目录/ sys / class / net /< INTERFACE> / wireless的存在与否决定了接口类型.该脚本假定以太网和无线只有1-1接口.

我怀疑无线目录始终存在于所有无线接口中.例如,在虚拟无线接口的情况下.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值