собственно тут варианты: сделать чтобы вайл работал не в субшелле (кормить его не через пайп), не использовать вайл, пихать echo в тот же субшелл где вайл
в общем, показываю особую башемагию, которая будет работать в этом случае, но юзабельна не всегда:
#!/bin/bash
echo shit | (
while read x; do
export lol=$x
done
echo "> $lol <"
)