Mesmo que você tenha atribuído a variável de shell trafficEmployeeId
com um número , ela será passada para o script jq
como um argumento string .
A solução é analisar o argumento como um número com a função jq tonumber
.
O segundo momento é que data[0]
contém o array com apenas um objeto, então é suficiente acessá-lo diretamente com .[0]
e aplicar a condição do operador if
simples.
Solução completa:
trafficEmployeeId=123456
echo "${data[0]}" | jq --arg employeeId "$trafficEmployeeId" '.[0]
| if .id == ($employeeId | tonumber) then .firstName else empty end'
A saída:
"John"