jq
fornece a saída citada, como seria apropriado para JSON.
$ echo '{ "foo": "foobar" }' | jq .foo
"foobar"
As citações acabam como parte do conteúdo de TOKEN
e não são removidas quando a variável é expandida. (Eles são apenas personagens comuns nesse ponto.)
No entanto, existe uma opção apenas para isso:
--raw-output
/-r
:With this option, if the filter´s result is a string then it will be written directly to standard output rather than being formatted as a JSON string with quotes. This can be useful for making jq filters talk to non-JSON-based systems.
Então, use TOKEN="$(echo "$OUTPUT" | jq -r .id)"
.