Comment passer une variable à Curl dans Bash Script

Je ne parviens pas à faire fonctionner cette boucle dans un script bash à l'aide d'une variable d'environnement. La clé API est mal interprétée d'une manière ou d'une autre lorsqu'elle est transmise via une variable et j'obtiens des erreurs d'authentification lors de la soumission. Si je branche la clé API sans guillemets environnants en texte clair, cela fonctionne très bien. J'ai essayé diverses formes d'échappement de guillemets et d'autres combinaisons. Toute aide est la bienvenue.

Code

#!/bin/bash

source .env

curl -X POST https://api.easypost.com/v2/shipments \
  -u "$EASYPOST_TEST_API_KEY": \
  -d 'shipment[to_address][name]=Dr. Steve Brule' \
  -d 'shipment[to_address][street1]=179 N Harbor Dr' \
  -d 'shipment[to_address][city]=Redondo Beach' \
  -d 'shipment[to_address][state]=CA' \
  -d 'shipment[to_address][zip]=90277' \
  -d 'shipment[to_address][country]=US' \
  -d 'shipment[to_address][phone]=8573875756' \
  -d 'shipment[to_address][email]=dr_steve_brule@gmail.com' \
  -d 'shipment[from_address][name]=EasyPost' \
  -d 'shipment[from_address][street1]=417 Montgomery Street' \
  -d 'shipment[from_address][street2]=5th Floor' \
  -d 'shipment[from_address][city]=San Francisco' \
  -d 'shipment[from_address][state]=CA' \
  -d 'shipment[from_address][zip]=94104' \
  -d 'shipment[from_address][country]=US' \
  -d 'shipment[from_address][phone]=4153334445' \
  -d 'shipment[from_address][email]=support@easypost.com' \
  -d 'shipment[parcel][length]=20.2' \
  -d 'shipment[parcel][width]=10.9' \
  -d 'shipment[parcel][height]=5' \
  -d 'shipment[parcel][weight]=65.9' \
0
Justin Hammond 8 févr. 2020 à 07:06

1 réponse

Meilleure réponse

Selon la suggestion de Gordon Davisson de le décomposer en une demande minimale, il a commencé à envoyer correctement. Ensuite, je l'ai reconstruit comme dans ma question ci-dessus et pour une raison quelconque, cela a fonctionné comme un charme. Le drapeau -x a également été incroyablement utile pour résoudre ce problème, mais j'ai découvert qu'il n'y avait rien de mal en soi en premier lieu. Merci pour les réponses de tous !

0
Justin Hammond 12 févr. 2020 à 18:09