В основном у меня есть роутер openwrt. Я хочу, чтобы он запускал сценарий оболочки для подключения к API, используя его MAC-адрес в качестве аутентификации и загружал файл JSON.

Поскольку API еще не создан, я создал файл JSON вручную и хочу, чтобы скрипт считывал некоторые значения из JSON и сохранял их в отдельных переменных.

Я использовал curl, чтобы получить файл JSON, теперь мне нужен скрипт для его чтения и сохранения каждого значения в отдельной переменной.

Все, что я вижу в Интернете, - это использование jq (https://stedolan.github.io/jq/), но памяти маленького маршрутизатора осталось всего 4 МБ, на маршрутизаторе установлен jshn (https://github.com/m- labs/openwrt-milkymist/blob/master/package/jshn/example.txt). Любые идеи о том, как я должен написать сценарий?

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

Заранее спасибо,

1 ответ1

3

Так как вы контролировать содержимое этого файла JSON, и так как вы должны обработать его с оболочкой на устройства с низким уровнем памяти, не использовать JSON: синтаксис вывода оболочки , и вы можете сделать его source непосредственно

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

Затем, после того как вы загрузите его, скажем, в status.sh

. ./status.sh
do_something_with "$status"
do_something_else_with "$vpn" "$vpnstatus" 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .