Мне нужно сгенерировать вывод JSON из моего сценария оболочки. Мне нужно получить информацию о слотах на данном конкретном компьютере и сгенерировать JSON, используя эти детали. Чтобы получить информацию о Ram, я использую system_profiler SPMemoryDataType
Он производит детали следующим образом.Создание JSON с использованием динамической переменной в скрипте оболочки
BANK 0/DIMM0:
Size: 2 GB
Type: DDR3
Speed: 1600 MHz
Status: OK
Manufacturer: 0x802C
Part Number: 0x384A54463235363634485A2D3147364D3120
Serial Number: 0xE98388E6
BANK 1/DIMM0:
Size: 2 GB
Type: DDR3
Speed: 1600 MHz
Status: OK
Manufacturer: 0x802C
Part Number: 0x384A54463235363634485A2D3147364D3120
Serial Number: 0xE98388E5
Из того, что я должен сформировать JSON, как это
[
{"Bank":"0/DIMM0","Serial Number":"0xE98388E6","Status":"OK"},
{"Bank":"1/DIMM0","Serial Number":"0xE98388E5","Status":"OK"}
]
Чтобы извлечь отдельные детали, как банк, серийный номер, статус мы можем использовать
system_profiler SPMemoryDataType | awk '/Bank/
system_profiler SPMemoryDataType | awk '/Serial/
system_profiler SPMemoryDataType | awk '/Status/
Я уверен, что есть необходимо, чтобы динамическая переменная делала форму json из результатов. Но поскольку я новичок в сценарии оболочки, я смущен. Есть ли способ генерировать JSON из вывода?
Большое спасибо за ваш ответ. Я работаю на удаленной машине Mac из системы Windows. Я использую plink для запуска сценария оболочки, который находится на локальной машине, я имею в виду Windows. Поэтому, если я использую скрипт, предоставленный вами, мне нужно скопировать файл script.awk на удаленную машину, что может замедлить процесс. Так что есть ли возможность иметь этот скрипт с единственным синглом #!/bin/bash файл? – BinaryMee
@CMb Да, вы можете встроить его в сценарий оболочки. См. Обновление. – konsolebox
Эй, человек. Это работало потрясающе. Большое спасибо. :) – BinaryMee