我需要在浏览器中打开bash命令的响应作为查询参数。
我的想法是从我的员工计算机上运行一个bash命令,让它在我的新库存应用程序中打开一个网址,为我完成剩下的工作。
现在我让它只用于串口。即:
inventoryme(){
OUTPUT="$(system_profiler SPHardwareDataType | grep Serial)"
open "http://localhost:3000/?serial=${OUTPUT}"
}
打开:http://localhost.dev:3000/?serial=%20%20%20%20%20%20Serial%20Number%20(system):CENSORED
我可以在我的网络应用程序端清楚地解析这个问题,或者在bash中做得更好,但我很乐意将prsystem_profiler SPHardwareDataType
的整个响应变成json字符串!
任何人都有一个很好的方法或建议吗?该命令返回如下内容:
Model Name: MacBook Air
Model Identifier: MacBookAir7,2
Processor Name: Intel Core i7
Processor Speed: 2.2 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 4 MB
Memory: 8 GB
Boot ROM Version: MBA71.0166.B06
SMC Version (system): 2.27f2
Serial Number (system): CONSORED
Hardware UUID: CONSORED
答案 0 :(得分:0)
使用Perl的几种方法:
# JSON::PP should be available. JSON::XS is faster, but is not a core module
perl -MJSON::PP -ne '/(\S.*):\s*(.*)/ and $data{$1} = $2; END { print encode_json(\%data) }'
# If you don't have a JSON module installed
perl -ne '/(\S.*):\s*(.*)/ and $json .= "\"$1\": \"$2\","; END { chop $json; print "{ $json }" }'