Como eu disse, não sei muito sobre json ou jq, mas não consegui fazer com que o jq analisasse sua saída de exemplo:
{
"first": "lor"
"second": "em"
"third": "ipsum"
}
parse error: Expected separator between values at line 3, column 12
Então eu transformei a entrada em:
{
"stream" : {
"channel" : {
"something" : {
"first": "lor",
"second": "em",
"third": "ipsum"
}
}
}
}
... com base no que eu recolhi da sua chamada para jq. Espero que seja semelhante ao que o comando curl está transmitindo.
Se for, então parece que esta sequência mostra o que você deseja:
# this is just your original curl command, wrapped in command substitution,
# in order to assign it to a variable named 'output':
output=$(curl --silent -H 'Accept: application/vnd.twitchtv.v3+json' -X GET https://api.twitch.tv/kraken/streams/$1)
# these three lines take the output stream from above and pipe it to
# separate jq calls to extract the values; I added some pretty-printing whitespace
first=$( echo "$output" | jq '.["stream"]["channel"]["something"]["first"]' )
second=$(echo "$output" | jq '.["stream"]["channel"]["something"]["second"]')
third=$( echo "$output" | jq '.["stream"]["channel"]["something"]["third"]' )
Com os resultados:
$ echo $first
"lor"
$ echo $second
"em"
$ echo $third
"ipsum"