Автоматизация сценария curl с внешними переменными из текстового файла - PullRequest
0 голосов
/ 27 марта 2019

Итак, у меня есть скрипт, расположенный по адресу

"http://somrething.com?source=<var1>&target=<var2>"

, который принимает два параметра (var1 и var2), оба из которых находятся в текстовом файле / файле Excel.

var1 | var2

ab     cd
ef     gh
.      .
.      .

Скажем, в приведенной выше таблице есть n записей, и я хочу выполнить свой скрипт curl n раз, чтобы он брал записи, заполнял запрос и выполнял.Как мне поступить так?

В настоящее время я использую скрипт python для выполнения этого запроса curl в качестве команды bash внутри цикла после прочтения текстового файла и перехода к элементам таблицы по одномуодин.

Примерно так:

combined_vars = list(zip(var1, var2))

for var1, var2 in combined_vars:
    bashCommand = "curl 'http://somrething.com?source=" + var1 + "&target="+ var2+"'"
    process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
    output, error = process.communicate()

Этот скрипт, в свою очередь, выполняется через скрипт bash, так как мне нужно автоматизировать весь этот процесс с помощью crontab.

Это кажется довольно неэффективным, и мне было интересно, есть ли альтернативный способ сделать это.

1 Ответ

0 голосов
/ 27 марта 2019

Предположим, что ваши поля не могут содержать разделитель полей (который ниже предполагается равным ,), достаточно использовать цикл while / read:

while IFS=',' read var1 var2; do
    curl "http://somrething.com?source=$var1&target=$var2"
done < input.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...