Вложенный вызов cURL

У меня есть одна задача cron - обновить мой DDNS с помощью текущего IP-адреса и сделать это с помощью вызова cURL.

Проблема заключается в том, что одним из параметров, передаваемых в вызове, является CURRENT IP, и для того, чтобы обнаружить, что мне нужно сделать еще один вызов cURL.

Я хотел бы знать, возможно ли вложить два вызова cURL в один сценарий, чтобы моя задача cron избегала дополнительных сценариев

пример:

чтобы получить мой текущий IP-адрес, который я использую

curl ipinfo.io/ip

чтобы обновить мой ddns мне нужно сделать:

curl -X PUT "https://api.cloudflare.com/client/v4/zones/2wertyh/dns_records/23ertghj" \
     -H "X-Auth-Email: tomatechines@gmail.com" \
     -H "X-Auth-Key: 123ertgyh" \
     -H "Content-Type: application/json" \
     --data '{"type":"A","name":"qwsdfg.com.br","content":"MY-CURRENT-IP","ttl":1800,"proxied":false}'

как я могу совместить эти два вызова вместе, чтобы сделать мою задачу cron

1 ответ

Решение

Используйте подстановку команд, например так:

curl -X PUT "https://api.cloudflare.com/client/v4/zones/2wertyh/dns_records/23ertghj" \
     -H "X-Auth-Email: tomatechines@gmail.com" \
     -H "X-Auth-Key: 123ertgyh" \
     -H "Content-Type: application/json" \
     --data '{"type":"A","name":"qwsdfg.com.br","content":"'"$(curl ipinfo.io/ip)"'","ttl":1800,"proxied":false}'

Строковый аргумент для --data состоит из трех составных частей, 'beginning'"$(curl ...)"'ending' (подробнее см. в этом ответе).

Другие вопросы по тегам