Команды, которые потребляют вывод вашей команды curl, перечислены после канала "|"персонаж.Итак ... они будут подоболочками текущего командного процессора, как вы и сказали в своем вопросе.Другими словами, они являются дочерними процессами и не могут напрямую влиять на среду родительской оболочки.
Вам понадобится найти другой способ обработки вывода команды curl, который позволит вашему сценарию назначатьтекст в переменные в текущей оболочке.т.е. не пытайтесь выполнить назначение в качестве второй или третьей команды в конвейере.Для этого такие вещи, как $ () и eval (1) ваши друзья.
Может быть что-то вроде:
$ output=$(curl options...)
$ variable1=$(echo $output | sed ...)
$ variable2=$(echo $output | sed other stuff...)