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.