Указать переменную для jq в bash скрипте
Накидал небольшой скрипт, но не получается подставить переменную для jq
#!/bin/bash
filejson=data.json
actpin=$(cat $filejson | jq -r '.["8100417186"].actpin')
respin=$(cat $filejson | jq -r '.["8100417186"].respin[0]')
echo $1
echo "Активный пинкод: $actpin"
echo "Резервный пинкод: $respin"
Как подставить вместо 8100417186 значение переменной $1 ? А то вместо значений получаю null
Ответы (1 шт):
Автор решения: Alexey Ten
→ Ссылка
Через параметр --arg.
#!/bin/bash
filejson=data.json
actpin=$(cat $filejson | jq -r --arg id "$1" '.[$id].actpin')
respin=$(cat $filejson | jq -r --arg id "$1" '.[$id].respin[0]')
echo $1
echo "Активный пинкод: $actpin"
echo "Резервный пинкод: $respin"
Или честно закрывать и открывать кавычки
#!/bin/bash
filejson=data.json
actpin=$(cat $filejson | jq -r '.["'$1'"].actpin')
respin=$(cat $filejson | jq -r '.["'$1'"].respin[0]')
echo $1
echo "Активный пинкод: $actpin"
echo "Резервный пинкод: $respin"