bash - 确定连接是有线还是无线?

标签 bash conky

我制作了一个 bash 脚本,当在每台计算机上运行时,它会检测 CPU 核心数量、HDD/分区、电池是否存在等,并生成一个 conkyrc 文件来显示该 PC 的相关信息使用我喜欢的 conky 风格。然而,我很难确定电脑是使用有线还是无线互联网连接。

有人知道如何确定 bash 脚本的连接类型吗?

最佳答案

试试这个:

tail -n+3 /proc/net/wireless | grep -q . && echo "We are wireless"

详细信息

在硬连线系统上,/proc/net/wireless 的内容由两个标题行组成:

# cat /proc/net/wireless 
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22

在具有事件无线接口(interface)的系统上,将有第三行显示有关该接口(interface)的数据。

上面的命令的工作原理如下

  • tail -n+3 命令用于删除 header 。

  • grep -q . 命令测试无线接口(interface)处于事件状态时是否存在后续行。

替代方案

iwconfig 是一个从 /proc/net/wireless 读取信息的实用程序:

iwconfig 2>&1 | grep -q ESSID && echo "We are wireless"

关于bash - 确定连接是有线还是无线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590874/

相关文章:

linux - 从两个嵌套程序设置 bash 变量

Bash 求幂限制

bash - 找到上次创建的 tar.gz 并解压

bash - 在 tail 命令中使用变量

bash 脚本和条件语句

python - Conky 界面

linux - Conky 文件中 pre_exec 命令的 Lua "replacement"是什么?

python获取上传/下载速度

linux - Conky 不会显示图像

if-statement - 带有 if_match 和 'and' 的 conky