Sintaxe de comando do terminal enrolado do AppleScript -- acos campo com terminal campo com applescript campo com command-line camp apple Relacionado O problema

Curl terminal command syntax from Applescript


1
vote

problema

português

Eu quero executar um comando curl no AppleScript que faz o seguinte ( por esta pergunta / resposta ):

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

... fazer um HTTP POST do conteúdo (como uma string) de um arquivo local localizado em path/to/my-file.txt Para um endpoint de URL no ABCDEFGHIJKLMNABCDEFGHIJKLMN3 .

O comando correto curl para que seja o seguinte:

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

seguindo as respostas neste post , tentei o seguinte comando applescript :

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

O resultado que eu espero é ver o conteúdo de my-file.txt Postado no endpoint API no https://example.com/API com a chave abcdefghijklmn8 .

No entanto, o resultado real que vejo no ponto final com a chave data é a seguinte string:

Api.data.
  HTTP POST0   

Em outras palavras, em vez de postar o conteúdo do arquivo, ele está postando o caminho literal para o arquivo como uma string.

Pergunta

Qual é a sintaxe correta do comando AppleScript?

Outras tentativas malsucedidas:

AppleScript
  HTTP POST1   

na lista para tentar:

    .
  1. Use o nome de caminho completo para o meu arquivo.txt, não use ~.
  2. Escape o "Na opção Data =, por exemplo: Do ​​Shell Script" Curl -d "data=@~/path/to/my-file.txt " https://example.com/api "

english

I want to execute a curl command in Applescript that does the following (per this SE question/answer):

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.

The correct curl command for that is the following:

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

Following the answers in this post, I tried the following Applescript command:

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

The result I expect is to see the contents of my-file.txt POSTed to the API endpoint at https://example.com/API with the key data.

However, the actual result I see at the endpoint with the key data is the following string:

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

In other words, instead of POSTing the contents of the file, it's POSTing the literal path to the file as a string.

Question

What is the correct Applescript command syntax?

Other unsuccessful attempts:

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" 

On list to try:

  1. Use the fully qualified pathname to my-file.txt, do not use ~.
  2. Escape the " in the data= option, e.g.: do shell script "curl -d \"data=@~/path/to/my-file.txt\" https://example.com/API"
           
     
     

Lista de respostas


Perguntas relacionadas

1  Como executar o script do shell no lançamento do aplicativo?  ( How to run shell script upon application launch ) 
Não tenho certeza se isso pertence aqui ou no superusuário, mas é o Mac específico, então eu vou com aqui. Eu escrevi um script Ruby que edita o arquivo de ...

4  Fazer Localizador.Updatedb Run Diariamente no Snow Leopard sem Hacking / System / Library?  ( Make locator updatedb run daily on snow leopard w o hacking system library ) 
No banco de dados ABCDEFGHIJKLMNABCDEFGHIJKLMBCDefGHIJKLMN1 é atualizado uma vez por semana por um trabalho de lançamento, /System/Library/LaunchDaemons/co...

4  Obtenha o tempo de CPU do usuário e do sistema de processo no OSX via linha de comando?  ( Get per process user and system cpu time on osx via command line ) 
Estou familiarizado com ABCDEFGHIJKLMNABCDEFGHIJKLMN0 Comando que fornece Usuário e System CPU separados por processo no Linux: $ sudo pidstat -p 3162 Li...

1  Como corrigir localize.updatedb não respeitando o diretório excluído de /etc/locate.rc?  ( How to fix locate updatedb not respecting directory excluded from etc locate rc ) 
Eu queria excluir alguns diretórios a partir dos resultados de ABCDEFGHIJKLMNABCDEFGHIJKLMN0 Ao editar ABCDEFGHIJKLMNABCDEFGHIJKLMN1 . Infelizmente se eu e...

18  Como atualizar o aplicativo App Store a partir da linha de comando?  ( How to update app store application from command line ) 
Eu gostaria de forçar uma atualização de aplicativos de aplicativos da linha de comando. Como posso fazer isso? ...

0  Como esse script AWK funciona?  ( How does this awk script work ) 
Eu tenho 2 arquivos de dados contendo uma coluna. Eu quero fazer outro arquivo de dados mesclando as duas colunas. Eu tenho a linha de comando na concha, mas ...

26  Como posso inspecionar as variáveis ​​de ambiente de um processo de execução?  ( How can i inspect the environment variables of a running process ) 
Existe algum equivalente (CLI ou GUI) para o recurso ABCDefGHIJKLMNABCDefGHIJKLMN0 ...

1  Problema com sintaxe de exclusão de conta script  ( Problem with scripted account deletion syntax ) 
Estou trabalhando em um módulo de script de limpeza de contas que pode lidar com as contas ocultos e unilindas que estamos criando em massa em novos sistemas ...

6  Os comandos de linha de comando podem ser insensíveis à ordem de nomes e opções de arquivos?  ( Can command line commands be made insensitive to order of filenames and options ) 
Eu sou novo para o uso do MAC. Parece que a maioria dos comandos tropega as opções dadas após os nomes dos arquivos. No Linux, que eu usei há anos, não import...

1  Sintaxe de comando do terminal enrolado do AppleScript  ( Curl terminal command syntax from applescript ) 
Eu quero executar um comando curl no AppleScript que faz o seguinte ( por esta pergunta / resposta ): https://superuser.com/a/1054803/471181. . ... faze...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.