Tente algo assim:
TMP="$(mktemp)"
curl ifconfig.co 2>/dev/null >"${TMP}" &
wait $!
echo $?
read MY_IP < "${TMP}"
rm "${TMP}"
unset TMP
echo ${MY_IP}
Fundamentalmente, você precisa manter o processo interessante como um filho direto do shell " this ".
Aqui, redirecionamos sua saída para um arquivo temporário e o utilizamos mais tarde usando read
.