我也提供了一个供应商,它会发出这个结果:
40u (0xd926)
48u (0xd92e)
56u (0xd936)
64u (0xd93e)
104u (0xd966)
112u (0xd96e)
136u (0xd986)
144u (0xd98e)
153u (0xd997)
161u (0xd99f)
36l (0xd826)
44l (0xd82e)
52l (0xd836)
60l (0xd83e)
100l (0xd866)
108l (0xd86e)
132l (0xd886)
140l (0xd88e)
149l (0xd897)
157l (0xd89f)
您可以将它们识别为 802.11 通道。
我通过删除括号部分来清理这个列表。此外,类似的列表可能包含看起来像 56/80 的条目。我还需要删除“/80”位。
我的结果如下:
40u 48u 56u 64u 104u 112u 136u 144u 153u 161u 36l 44l 52l 60l 100l 108l 132l 140l 149l 1571
在我的 ASH 脚本(ASH 不是 BASH)中,我有这个,其中 bandnick(2 或 5)、带宽(20、40、80)和国家(两个字母国家代码)是 5、80,在这种情况下为 US:
channels=`wl chanspecs -b $bandnick -w $bandwidth -c $country | cut -d' ' -f 1 | cut -d'/' -f 1 | xargs echo -n`
read response
for t in $channels; do
if [[ "$response" = "$t" ]]; then
# stuff
fi
done
当我运行此代码时,最多可以找到“161u”的答案channels
。“361”不匹配。
我想这与整数与字符串比较有关,但我尝试过的任何方法似乎都不起作用:
- 删除引号
- 使用 -eq 而不是 =(很多或错误)
- 将装饰器添加到测试项目
[ "_$response" = "_$t' ]
关于让它工作的任何建议?