Następnie odczytać sam prompt przez po prostu naciśnięcie enter:

sleep 2 expect * send \r expect ">"

Akcja:

send "ls\r" expect "ls" expect ">" { set directory $expect_out(buffer) }

Objaśnienie do expect "ls": terminal sam wypisze komendę, którą wpisało się (gdyby tego nie zrobił, byłby efekt podobny do prośby o hasło - po wpisaniu nic nie widać). Następnie trzeba usunąć ostatnią linijkę, którą był prompt i wypisać to na ekranie:

set directory [join [lrange [split $directory \n] 1 end-1] \n] puts $directory

Objaśnienie dlaczego od 1, nie od 0: było expect "ls", więc znak końca linii pozostał w buforze. Następna po tym komenda expect odczytała z $expect_out(buffer) wszystko co było w buforze, aż do ciągu, który podano w instrukcji expect.

Expect posiada jeszcze wiele ciekawych komend pozwalających na bardziej inteligentne interakcje, ale te pokazane tutaj są używane w przeważającej większości. Z expectem trzeba zawsze trochę poeksperymentować (niestety terminale potrafią sprawiać różne niespodzianki), w czym pomaga opcja -d w poleceniu expect - wtedy na standardowe wyjście diagnostyczne wypisywane są kolejne akcje podejmowane przez expecta.