2015-05-29 7 views
-1

«$ emails» имеет массив значений, я хочу проанализировать значения из него, для этого я использую jq. если я сделать ниже командыСохранять значение переменной в скрипте оболочки

echo "$emails" | ./jq '.total_rows' 

я мог получить значение 4 то есть, я хочу, чтобы сохранить возвращаемые результаты в какой-либо переменной,

total_rows="$emails" | ./jq '.total_rows' 

но TOTAL_ROWS не имеет никакого значения.

echo $total_rows 

Как сохранить возвращаемый результат в переменную?

ответ

5

Вы должны использовать правильную цитату, например:

total_rows=`echo "$emails" | ./jq '.total_rows'` 

Параметр `` выполнит команду и дать total_rows значения его, так что все было бы выходом

echo "$emails" | ./jq '.total_rows' 

будет храниться в total_rows.

+0

Спасибо @Nidhoegger. Он работает – Sivailango

+3

Я бы порекомендовал использовать '$()' для backticks для подстановок команд. Кроме того, в bash вы можете использовать 'total_rows = $ (./ jq '.total_rows' <<<" $ emails ")'. –

+0

Обратите внимание, что вы не можете добавить пробел total_rows = 'не работает –

Смежные вопросы