gpt4 book ai didi

linux - 在 bash 脚本中获取子字符串

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:23 24 4
gpt4 key购买 nike

我试图在 bash 脚本中获取子字符串,但我采用的方法并不是一个好的解决方案。我正在解析“ifconfig”命令的响应并尝试获取第一个网络接口(interface)名称。

ifconfig 的结果:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:6d:a1:92  
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:73 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7099 (6.9 KiB) TX bytes:7099 (6.9 KiB)

wlan0 Link encap:UNSPEC HWaddr ****
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:792698 errors:0 dropped:792552 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:219274179 (209.1 MiB) TX bytes:0 (0.0 B)

wlan5 Link encap:Ethernet HWaddr ****
inet addr:**** Bcast:**** Mask:****
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:48934 errors:0 dropped:3422 overruns:0 frame:0
TX packets:21217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14458518 (13.7 MiB) TX bytes:2692948 (2.5 MiB)

获取第一个接口(interface)名称 wlan0

conf=`ifconfig`

net=${conf:670:6}

我不明白,但位置有时会改变,这就是我不能使用索引 670 的原因。Wlan0 可以是 wlan1、wlan2 等等...我无法专门搜索 wlan0。有什么建议吗?

最佳答案

GNU awk

ifconfig | awk -vRS= '!/^(eth0|lo)/{print $1;exit}'

跳过 etho 和 lo block 并打印下一个的第一个字段,然后退出。

关于linux - 在 bash 脚本中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com