Как мне l oop внутри файла и создать новый после шаблона в Openwrt? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть шаблон для маршрутизации политики для OpenWRT, и у меня есть тонны IP, которые мне нужно вставить в этот файл.

В основном у меня есть все ips, которые мне нужны, в файле с именем bundofips И вот шаблон, которому я должен следовать:

config rule 'rule1'
    option dest_ip 'ipcomeshere'
    option proto 'all'
    option use_policy 'secondary'
    option sticky '1'
    option src_ip '192.168.1.1/24'

В основном, где написано правило1, мне нужно увеличить его на 1 для каждого IP. Поэтому, если у меня 300 ips, последним будет правило 300. Ipcomes находится там, где он должен получить из файла bundofips , этот файл выглядит так:

150.100.32.0/20
130.3.220.0/22
185.5.188.0/22
192.153.127.0/24
112.153.64.0/18
[...]

Так, какой сценарий я мог бы сделать этот новый файл со всеми этими ips и чтобы иметь возможность работать в роутере OpenWRT? Это вообще возможно?

Спасибо!

1 Ответ

1 голос
/ 12 марта 2020

Я не знаю, в каком формате вы хотите выводить данные (например, один файл, файлы 300x, передавать как stdin другому процессу), поэтому для ответа на этот вопрос я просто выведу вывод в один файл 'allmyconfigs'.

Я также собираюсь предположить, что вы хотите, чтобы вся строка из 'bunchofips' заменила 'ipcomeshere', например, заменила 'ipcomeshere' на '150.100.32.0/20'.

. ответ, мы будем использовать простой шаблон echo с парой переменных для настройки вывода для каждого прохода через l oop, например:

> allmyconfigs                 # start with an empty file

counter=0

while read -r newip
do
    counter=$((counter+1))

    echo "config rule 'rule${counter}'
    option dest_ip '${newip}'
    option proto 'all'
    option use_policy 'secondary'
    option sticky '1'
    option src_ip '192.168.1.1/24'" >> allmyconfigs

done < bunchofips
...