Создайте TXT-файл с текстом и переменными и отправьте переменные через CURL, используя скрипт оболочки Bash - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь создать файл .txt с записями переменных в нескольких строках вместе с текстом c, а затем отправить некоторые данные переменных через CURL в запросе POST.

ПРОБЛЕМЫ

В настоящее время файл .txt создается, но все они добавляются в одну строку, а не в несколько строк.

Только одна переменная (image1ID) отправляется через CURL, другая переменная исключается из полезной нагрузки.

IDEAL OUTCOME

TXT-файл содержит

file https://www.amazon.com/1.jpg
11
file https://www.amazon.com/2.jpg
13
...

и отправляет все переменные изображений через CURL

#!/bin/bash

image1Url=https://www.amazon.com/1.jpg
image1IDNumber=11
image2Url=https://www.amazon.com/2.jpg
image2IDNumber=13
image3Url=https://www.amazon.com/3.jpg
image3IDNumber=15
image4Url=https://www.amazon.com/4.jpg
image4IDNumber=17
image5Url=https://www.amazon.com/5.jpg
image5IDNumber=19

# Build txt using variables
echo "'file '${image1Url}\n${image1IDNumber}\n'file '${image2Url}\n${image2IDNumber}\n'file '${image3Url}\n${image3IDNumber}\n'file '${image4Url}\n${image4IDNumber}\n'file '${image5Url}\n${image5IDNumber}\n" >imagedetails.txt


curl -H "content-Type: application/json"  -d {"image1ID":"${image1IDNumber}","image2ID":"${image2IDNumber}"}  https://requestbin.herokuapp.com/18y57z13

1 Ответ

1 голос
/ 22 апреля 2020

Я думаю, я понимаю, что вы пытаетесь сделать там. Я удивляюсь, почему вы все усложняете? Кажется, что ваши переменные равны 5, если они являются динамическими c, вы должны вместо этого использовать al oop.

Следующий код дает ваш Идеальный результат . Самый простой способ сделать это:

#!/bin/bash

image1Url=https://www.amazon.com/1.jpg
image1IDNumber=11
image2Url=https://www.amazon.com/2.jpg
image2IDNumber=13
image3Url=https://www.amazon.com/3.jpg
image3IDNumber=15
image4Url=https://www.amazon.com/4.jpg
image4IDNumber=17
image5Url=https://www.amazon.com/5.jpg
image5IDNumber=19

# Build txt using variables

echo " file $image1Url " >> imagedetails.txt
echo " $image1IDNumber " >> imagedetails.txt
echo " file $image2Url " >> imagedetails.txt
echo " $image2IDNumber " >> imagedetails.txt
echo " file $image3Url " >> imagedetails.txt
echo " $image3IDNumber " >> imagedetails.txt
echo " file $image4Url " >> imagedetails.txt
echo " $image4IDNumber " >> imagedetails.txt
echo " file $image5Url " >> imagedetails.txt
echo " $image5IDNumber " >> imagedetails.txt

### Post the content of the file as follow :

a="\"image1ID\":\"${image1IDNumber}\",\"image2ID\":\"${image2IDNumber}\"" 
b="'$a'"
curl -H "content-Type: application/json"  -d $b https://requestbin.herokuapp.com/18y57z13

Вам следует подать imagedetails.txt файл, содержащий следующий вывод:

 file https://www.amazon.com/1.jpg
 11
 file https://www.amazon.com/2.jpg
 13
 file https://www.amazon.com/3.jpg
 15
 file https://www.amazon.com/4.jpg
 17
 file https://www.amazon.com/5.jpg
 19
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...