Você está pensando demais nisso. Tudo que você precisa é isto:
cat > texttest.txt
Cat lerá de STDIN se você não tiver dito diferente. Como ele está lendo STDIN, ele reagirá ao caractere de controle Ctrl + D sem que você precise especificá-lo. E como o Ctrl + D é a única coisa que terminará o sub-processo cat
, você não precisa nem envolvê-lo em um loop.