Ваша команда должна быть:
token=$(echo "$result" | sed -n -e 's/^.*access_token":"//p' | cut -d'"' -f1)
Вам нужно использовать echo
, чтобы напечатать содержимое переменной через стандартный вывод, и вам нужно использовать подстановку команды $( )
, чтобы назначить выводконвейера до token
.
Всегда рекомендуется заключать в кавычки ваши переменные, чтобы избежать проблем с пробелами и символами глобуса, такими как *
.
В качестве отступления, обратите внимание, чтовы, вероятно, можете получить вывод, используя что-то вроде:
token=$(jq -r .access_token <<<"$result")
Я знаю, вы сказали, что вы не можете использовать jq
, но это отдельный двоичный файл (не нужно его устанавливать), который обрабатывает ваш JSONправильно, а не как произвольный текст.