Выражения внутри одинарных кавычек не раскрываются в оболочке, они воспринимаются как буквальные. Это означает, что если вы храните свой IP-адрес в переменной с именем ip
, например:
ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
и вы поместите это в одинарные кавычки, оно не будет расширено:
echo '$ip'
$ip
тогда как, если вы поместите его в двойные кавычки, оно будет расширено:
echo "$ip"
192.80.136.233
Итак, вам нужны двойные кавычки, но это вызовет проблему, потому что вам нужны двойные кавычки вокруг строк JSON, поэтому вам нужно избегать их, ставя перед ними обратную косую черту. Итак, вы хотите:
curl -X POST -H "Content-Type: application/json" -d "{\"value1\":\"$ip\"}"