Cara include environment variable kedalam cURL
Posted on
Aku ingin script curl
membaca environment variable untuk body datanya, eh error. Ternyata solusinya sangat mudah. Scriptku kira-kira begini:
API_KEY="mykey"
DOMAIN_NAME="mydomain.com"
SUBDOMAIN_NAME="$1"
IP_ADDRESS="192.168.1.1"
curl -X POST -H "Content-Type: application/json" \
-H "X-Api-Key: $API_KEY" \
-d '{"rrset_name": "$SUBDOMAIN_NAME",
"rrset_type": "A",
"rrset_ttl": 1800,
"rrset_values": ["$IP_ADDRESS"]}' \
https://otherdomain.com/api/v99/domains/$DOMAIN_NAME/records
Ketika di eksekusi error, data rrset_name gak sesuai. Nah disini yang jadi masalah adalah '
, apapun yg diapit oleh '
akan dieksekusi apa adanya. Contoh diatas adalah
-d '{"rrset_name": "$SUBDOMAIN_NAME",
"rrset_type": "A",
"rrset_ttl": 1800,
"rrset_values": ["$IP_ADDRESS"]}'
"$SUBDOMAIN_NAME" akan terkirim apa adanya $SUBDOMAIN_NAME bukan digantikan oleh $1.
Solusi dari masalah yang kuhadapi adalah sebagai berikut:
API_KEY="mykey"
DOMAIN_NAME="mydomain.com"
SUBDOMAIN_NAME="$1"
IP_ADDRESS="192.168.1.1"
curl -X POST -H "Content-Type: application/json" \
-H "X-Api-Key: $API_KEY" \
-d '{"rrset_name": "'"$SUBDOMAIN_NAME"'",
"rrset_type": "A",
"rrset_ttl": 1800,
"rrset_values": ["'"$IP_ADDRESS"'"]}' \
https://otherdomain.com/api/v99/domains/$DOMAIN_NAME/records
"'"$SUBDOMAIN_NAME"'"
dan "'"$IP_ADDRESS"'"
Cara ini mungkin kurang elegan, tapi it's just work.
Sumber solusi: superuser.com.