You can use the all
function to reduce an array of Booleans* to true
if all the Booleans are true. jq
will output that value, which you can capture using command substitution.
result=$(jq 'map(.value) | all' tmp.json)
You may not need the actual output, though. It may be sufficient to use the --exit-status
option (short form -e
) to test if jq
would return true
or not.
if jq -e 'map(.value) | all' tmp.json > /dev/null; then
echo "All were true"
else
echo "At least one was false"
fi
* Among other things; see @peak’s comment below
CLICK HERE to find out more related problems solutions.