Cria variáveis de linha de comando com o PATH

0

Como eu sou mais um cara da web, eu preciso de uma pequena ajuda com isso, então vou explicar o que estou tentando fazer antes de perguntar.

Estou criando um script em lote que:

  • OBTER a solicitação de um servidor externo (arquivo json), receber dados, salvar localmente como .json
  • Use o JQ para navegar pelo json para result [0] .title
  • Use o "título" como parâmetro para uma solicitação de onda

Quando eu tiver o arquivo localmente. Eu usaria o JQ para encontrar os dados no objeto

cat file.json | jq '.results[0].title' > $1 && curl -i -H "Accept: application/html" -H "Content-Type: application/html" -X GET http://example.com/test/$1 > test.txt

É possível definir variáveis locais na linha de comando '$ 1' para uso temporário em um comando canalizado?

Eu estou saindo daqui?

    
por Cason 09.01.2016 / 02:49

1 resposta

3

Enquanto $1 normalmente tem um significado especial (o primeiro parâmetro passado para um script / função / etc.) você pode realmente salvar a saída de comandos em variáveis.

title=$(jq '.results[0].title' file.json)
curl -i -H "Accept: application/html" -H "Content-Type: application/html" -X GET http://example.com/test/"$title" > test.txt

A primeira parte executa os comandos jq '.results[0].title' file.json e salva a saída (o que aparecer em stdout na variável title . Em seguida, executamos o comando curl e expandimos a variável title como parte do comando url

    
por 09.01.2016 / 02:53