В Bash я пытаюсь запросить валюты стран из http://free.currencyconverterapi.com/api/v5/convert?q=USD_GBP и автоматически обновлять мой OpenEdge API без жесткого кодирования символов.Это означает, что мне нужно свернуть и сохранить символы валют из моего API в массиве, а затем свернуть и сохранить значения из API конвертера валют.после этого я хочу запустить два цикла for одновременно или получить доступ к индексам двух массивов одновременно, чтобы выполнить вызов API, требующий ввода
url/rest/USD/12
.
В bash я вызываю curl, который возвращает
ZAR USD EUR BWP CHF GBP
из моего API в одну строку.Затем я сохраняю этот результат в переменной с именем currency
jsonEnd="_ZAR.val"
symbolEnd="_ZAR"
Затем запускаю
values=()
for j in ${currency[*]};
do
${values[j]}=$(curl -X GET -H "Content-type: application/json" http://free.currencyconverterapi.com/api/v5/convert?q=${currency[j]}$symbolEnd&compact=y | jq '.${currency[j]}$jsonEnd')
done
Чтобы получить значения валют в массив, где '_ZAR.val' - из jsonВ результате я попытался указать на «val» с помощью jq
{
"USD_ZAR": {
"val": 14.23065
} }
, наконец, я пытаюсь запустить POST Curl, для которого требуется соответствующий относительный символ валюты, такой как USD, со значением для обновления.в этой форме
curl -X PUT -H "Content-Type: application/json" -H "Authorization: $context" http://192.168.xxx.xxx:8080/rest/exchangerates/USD/12
я пробовал это
for i in ${values[@]}
do
curl -X PUT -H "Content-Type: application/json" -H "Authorization: $context" http://192.168.xxx.xxx:8080/rest/exchangerates/${currency[i]}/${values[i]}
done
я не могу понять это правильно, ошибки включают
curl: (6) Could not resolve host: USD_ZAR
и т. д. Я новичок в bash