Script do shell e Json [fechado]

0

Basicamente, eu tenho um roteador openwrt. Eu quero que ele execute um script de shell para se conectar a uma API, usando seu endereço MAC como autenticação e baixar um arquivo JSON.

Como a API ainda não foi criada, criei um arquivo JSON manualmente e quero que o script leia alguns valores do JSON e armazene-os em variáveis separadas.

Eu usei o curl para obter o arquivo JSON, agora eu preciso do script para lê-lo e armazenar cada valor em uma variável esperada.

Tudo o que vejo online é usar jq ( link ), mas a memória do pequeno roteador é de apenas 4 MB, o roteador tem o jshn instalado ( link ). Alguma idéia sobre como devo escrever o roteiro?

{
  "mac": "8d:ff:86:7d:9c",
  "adblock": "off",
  "parental": "off",
  "vpn": "newyork1.ovpn",
  "vpnstatus": "off",
  "status": "active"
}

Agradecemos antecipadamente

    
por Tom 12.09.2018 / 19:58

1 resposta

3

Como você controla o conteúdo desse arquivo JSON, e já que precisa processá-lo com shell em um dispositivo com pouca memória, não use a sintaxe JSON: shell e você pode source diretamente

mac="8d:ff:86:7d:9c"
adblock="off"
parental="off"
vpn="newyork1.ovpn"
vpnstatus="off"
status="active" 

Então, depois de baixá-lo para, digamos, status.sh

. ./status.sh
do_something_with "$status"
do_something_else_with "$vpn" "$vpnstatus" 
    
por 13.09.2018 / 12:14

Tags