显示终端中的活动接口

时间:2019-02-14 12:16:50

标签: bash macos-sierra

我正在尝试列出我当前正在使用的网络接口。我需要知道如何在终端和脚本中执行此操作。

ifconfig | grep $(networksetup -listnetworkserviceorder | grep 'Ethernet, Device' | sed -E "s/.*(en[0-9]).*/\1/")

我得到什么: enter image description here

我想得到什么: 仅活动接口的名称

1 个答案:

答案 0 :(得分:0)

使用第二个命令,将接口名称后面的所有内容都放入一个超前位置,这样就不会将其作为匹配项打印出来。

ifconfig | pcregrep -M -o '^[^\t:]+(?=:([^\n]|\n\t)*status: active)'

执行此操作时,输出为:

en0
awdl0

有关awdl0是什么,请参见What is AWDL (Apple Wireless Direct Link) and how does it work?

如果仅打印networksetup管道的结果而不使用ifconfig,则您的第一个命令应该可以工作。这对我有用:

networksetup -listnetworkserviceorder | grep 'Wi-Fi, Device' | sed -E "s/.*(en[0-9]).*/\1/"

我有Wi-Fi,而不是以太网。