pętla while w bash

Jakiś czas temu miałem problemy z tym iż podczas wykonywania pętli while dane nie są widoczne w pętli ani jak się skończy to które są wcześniej przykład:

$ TT=1; ls -la | while read line; do echo ${TT}; TT=11; done; echo ${TT}
1
11
11
11
11
11
11
11
11
11
11
1

powodem tego jest to iż while odpalane jest w osobnym bashu zatem jak się kończy while to i zakończenie bash kończy swoje życie. Rozwiązanie:

$ TT=1; ls -la | while read line; do echo ${TT}; TT=11; done; echo ${TT}
1
11
11
11
11
11
11
11
11
11
11
1