-1

я нашел это

channel_map = {
    "2412" : 1,
    "2417" : 2,
    "2422" : 3,
    "2427" : 4,
    "2432" : 5,
    "2437" : 6,
    "2442" : 7,
    "2447" : 8,
    "2452" : 9,
    "2457" : 10,
    "2462" : 11,
    "2467" : 12,
    "2472" : 13,
    "2484" : 14
}

Как я могу преобразовать это, чтобы я мог использовать это в сценарии Bash?

Я хотел бы определить

$ CHANNEL = 11

и сценарий должен использовать правильную частоту.

команда, которую я использую, например:

iw dev wlan0 ibss join $ESSID 2412 HT40+ fixed-freq $CELLID

3 ответа3

1

если вы просто хотите извлечь соответствующий номер из этого файла, попробуйте:

awk -v chan=$CHANNEL '{if($3 ~ chan","){gsub("\"","",$1);print $1}}' map

где map - ваш входной файл, а $CHANNEL - для канала, который вы ищете.

1

Я считаю, что ответ, который ищет rubo77:

#!/bin/sh –
channel_map[1]=2412
channel_map[2]=2417
channel_map[3]=2422
channel_map[4]=2427
channel_map[5]=2432
channel_map[6]=2437
channel_map[7]=2442
channel_map[8]=2447
channel_map[9]=2452
channel_map[10]=2457
channel_map[11]=2462
channel_map[12]=2467
channel_map[13]=2472
channel_map[14]=2484

channel=11
echo ${channel_map[$channel]}

Более компактный способ сделать это:

#!/bin/bash
channel_map=(XYZZY 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 \
                   2462 2467 2472 2484)

channel=11
echo ${channel_map[$channel]}

channel_map это массив. XYZZY является заполнителем; он будет назначен channel_map[0] .

0

Не уверен в вашей полной реализации, но как быстрый способ добиться этого .. Хотя, как сказал @Paul, большинство из тех, кого я знаю, принимают номер канала, а не частоту:

#!/bin/bash

channel=${1:-"6"}   # Channel will equal the command line argument, default to "6" if empty.
let channel-=1      # This lets you specify 1 - 14 instead of the 0-13 base of an array

freq=(2412 2417 2422 nnnn)  # The channel values, 1-14

echo ${freq[${channel}]}

Обязательно сохраните его как what.sh и chmod +x whatever.sh Затем вы можете просто набрать ./whatever.sh 4 (из того же каталога), и выше будет эхо 2427

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .