Sintassi del comando del terminale di arricciatura da Applescript

1

Voglio eseguire un comando curl in Applescript che esegue quanto segue ( per questa domanda / risposta SE ) :

https://superuser.com/a/1054803/471181

...Do an HTTP POST of the contents (as a string) of a local file located at path/to/my-file.txt to a URL endpoint at http://example.com/API.

Il comando curl corretto per questo è il seguente:

terminale
curl -d "data=@~/path/to/my-file.txt" https://example.com/API

Seguendo le risposte in questo post , ho provato il seguente comando di Applescript:

AppleScript
do shell script "curl -d data=@~/path/to/my-file.txt https://example.com/API"

Il risultato che mi aspetto è di vedere i contenuti di my-file.txt inviati all'endpoint API a https://example.com/API con la chiave data .

Tuttavia, il risultato effettivo che vedo nell'endpoint con la chiave data è la seguente stringa:

API.data
"@~/path/to/my-file.txt

In altre parole, invece di pubblicare i contenuti del file, è POSTARE il percorso letterale del file come una stringa.

Domanda

Qual è la sintassi corretta del comando di Applescript?

Altri tentativi non riusciti:

AppleScript
do shell script "curl -d data=\@~/path/to/my-file.txt https://example.com/API"
do shell script "curl -d \"data=@~/path/to/my-file.txt\" https://example.com/API"
do shell script "curl -d 'data=@~/path/to/my-file.txt' https://example.com/API"

Elenco in cui cercare:

  1. Utilizza il nome percorso completo per my-file.txt, non utilizzare ~.
  2. Escape the "nell'opzione data =, ad esempio: script di shell" curl -d \ "data=@~/path/to/my-file.txt \" link "
posta Mowzer 22.03.2016 - 19:35
fonte

0 risposte

Leggi altre domande sui tag