Если вы действительно хотите сделать это таким образом, это может выглядеть так:
readarray -t permissions < <(jq -c '.permissions[]' JsonFileToTest)
for permissionSet in "${permissions[@]}"; do
jq -r '.emailid' <<<"$permissionSet"
done
Обратите внимание, что мы говорим jq печатать по одной строке для каждого элемента (с -c
) и использование readarray -t
для чтения каждой строки в элемент массива (в отличие от антипаттерна array=( $(...command...) )
, который разбивается не только на новые строки, но и на другие пробелы, и расширяет глобусы в процессе).
Но нет никакой причины делать что-либо из этого. Вы получите точный тот же результат, просто запустив:
jq -r '.permissions[].emailid' JsonFileToTest