Não é possível usar uma variável fora do tempo e canalizar no bash

Eu tenho um código como esse

var="before"  
echo "$someString" | sed '$someRegex' | while read line 
do
    if [ $condition ]; then
        var="after"
        echo "$var" #first echo
    fi 
done 
echo "$var" #second echo

Aqui a primeira impressão de eco "depois", mas a segunda é "antes". Como faço para imprimir o segundo eco "depois". Eu acho que é por causa da compra de cachimbo que eu não sei como descobri

Obrigado por todas as soluções ...

answer edit:

Corrigi-o e funciona bem. Obrigado eugene pela sua resposta útil

var="before"  
while read line 
do
    if [ $condition ]; then
        var="after"
        echo "$var" #first echo
    fi 
done < <(echo "$someString" | sed '$someRegex')
echo "$var" #second echo

questionAnswers(1)

yourAnswerToTheQuestion