Se você tem confiança na saída do seu comando rhc, você pode simplesmente fornecer:
. <(rhc env list -a <app-name>)
Isto irá fornecer (executar) cada linha que rhc produz.
Como escrito, o código acima define as variáveis, mas não as exporta. Nós poderíamos consertar isso, mas o código abaixo é mais seguro e faz a exportação.
O comando de origem, . , espera um arquivo como um argumento. Para converter a saída de rhc em um objeto semelhante a um arquivo, usamos substituição de processo : <(...) .
Para ser mais seguro, use:
while read -r line; do declare -x "$line"; done < <(rhc env list -a <app-name>)
Aqui, usamos a substituição de processo, <(...) , combinada com o redirecionamento de entrada, < , para que o loop while seja lido na saída de rhc . O espaço entre o primeiro e o segundo < é essencial: do não omita-o.
A opção -x para declare diz ao bash para exportar a variável.
Alterar a ordem
Como comentário abaixo, o comando rhc pode ser colocado na linha acima do while loop via:
tmpvar=$(rhc env list -a <app-name>)
while read -r line; do declare -x "$line"; done <<<"$tmpvar"
<<< cria uma string aqui . Nesse caso, significa que o $tmpvar é fornecido como entrada para o loop while .