jq ist ein kleiner und flexibler command-line JSON processor.

Beispiel

Config-File auslesen

Pro System ein Pfad. Unterschied zwischen Prod und Dev inkl. Umgebungsvariablen auslesen.

1#!/usr/bin/bash
2CONFIGFILE="config.rc.json"
3ZIELSYTEM="prodsysteme"
4ZIELSYTEM="devsysteme"
5for SystemArt in $(jq -r ".$ZIELSYTEM[] | .name" ${CONFIGFILE} )
6do
7    PFAD=$(jq -r --arg SystemArt "${SystemArt}" ".$ZIELSYTEM[] | select (.name==\"$SystemArt\")| .pfad " $CONFIGFILE )
8    echo "system $SystemArt auf $PFAD"
9done
 1{
 2    "devsysteme": [
 3        {
 4            "name": "local",
 5            "pfad": "/mnt"
 6        },
 7        {
 8            "name": "test1",
 9            "pfad": "/mnt_gibt_es_nicht"
10        }
11    ],
12    "prodsysteme": [
13        {
14            "name": "prod",
15            "pfad": "/mnt"
16        }
17    ]
18}