Скрутите список в bash - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь перебрать список для скручивания каждого из них, в конечном итоге это пнуть список заданий Jenkins.

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

ApplianceInsurance-Tests
BicycleInsurance-Tests
Breakdown-Tests
BridgingLoans-Tests
Broadband-Tests
Business-Loans
BusinessElectric-Tests
BusinessGas-Tests

и я пытаюсь создать цикл, в котором я запускаю команду curl для каждой строки в текстовом файле

for fn in `cat jenkins-lists.txt`; do "curl -X POST 'http://user:key@x.x.x.xxx:8080/job/$fn/build"; done

, но постоянно получаю сообщение об ошибке - Нет такого файла или каталога.

Немного запутался

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Ваше do-done тело указано неверно.Это должно быть:

curl -X POST "http://user:key@x.x.x.xxx:8080/job/$fn/build"

Я бы также рекомендовал:

while read -r fn; do
    curl -X POST "http://user:key@x.x.x.xxx:8080/job/$fn/build"
done < jenkins-list.txt

вместо for fn in $(anything); do ....Со вторым способом вам не нужно беспокоиться о случайном смещении, и файл списка jenkins может быть красиво буферизован вместо необходимости считывать все данные в памяти сразу (не то, что это имеет значение для такого маленького файла, но почему бы не иметьтехника, которая работает более или менее независимо от размера файла?).

0 голосов
/ 30 мая 2018

Если бы ошибка произошла от curl, она, вероятно, была бы отформатирована в html.Единственный способ воспроизвести ошибку, которую вы описываете, - это перехватить несуществующий файл.

Дважды проверьте имя файла jenkins-lists.txt и убедитесь, что ваш скрипт работает в том же каталоге, что ифайл.Или используйте абсолютный путь к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...