确定连接是有线还是无线?
determine if connection is wired or wireless?
我有一个我制作的 bash 脚本,当我的每台计算机上 运行 时,它会检测 CPU 个核心的数量,HDDs/partitions,是否存在电池等,并生成一个 conkyrc 文件以使用我喜欢的样式在我的 conky 中显示该 PC 的相关信息。但是,我很难确定 PC 是在有线还是无线互联网连接上。
有人知道用 bash 脚本确定连接类型的方法吗?
试试这个:
tail -n+3 /proc/net/wireless | grep -q . && echo "We are wireless"
详情
在硬连线系统上,/proc/net/wireless
的内容由两行 header 组成:
# cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
在具有活动无线接口的系统上,将有第三行显示有关该接口的数据。
上述命令的工作原理如下
tail -n+3
命令用于删除header。
如果无线接口处于活动状态,grep -q .
命令会测试是否存在后续线路。
备选
iwconfig
是一个从 /proc/net/wireless
:
读取信息的实用程序
iwconfig 2>&1 | grep -q ESSID && echo "We are wireless"
我有一个我制作的 bash 脚本,当我的每台计算机上 运行 时,它会检测 CPU 个核心的数量,HDDs/partitions,是否存在电池等,并生成一个 conkyrc 文件以使用我喜欢的样式在我的 conky 中显示该 PC 的相关信息。但是,我很难确定 PC 是在有线还是无线互联网连接上。
有人知道用 bash 脚本确定连接类型的方法吗?
试试这个:
tail -n+3 /proc/net/wireless | grep -q . && echo "We are wireless"
详情
在硬连线系统上,/proc/net/wireless
的内容由两行 header 组成:
# cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
在具有活动无线接口的系统上,将有第三行显示有关该接口的数据。
上述命令的工作原理如下
tail -n+3
命令用于删除header。如果无线接口处于活动状态,
grep -q .
命令会测试是否存在后续线路。
备选
iwconfig
是一个从 /proc/net/wireless
:
iwconfig 2>&1 | grep -q ESSID && echo "We are wireless"