2012-12-11 12 views
14

Używam Expect przez kilka lat, ale nadal nie jest dla mnie jasne, czy send_user jest takie samo jak puts. Za każdym razem, gdy chcę wysłać użytkownikowi wiadomość informacyjną, zastanawiam się, z której powinienem skorzystać. Ze strony podręcznika Expect wygląda na to, że send_user jest takie samo jak puts, ale do czego służy send_user?Jakakolwiek różnica między "send_user" a "puts" w Expect

+0

Oni mogą być tacy sami; Oczekuj, że poprzednia jest duża ilość operacji IO Tcl ... –

Odpowiedz

7

Kolejną różnicą Właśnie odkryto między nimi, oprócz nowej linii rzeczą jest to, że jeśli używasz log_file w Expect scenariusza, sprawozdanie wysyłane send_user uczyni je w pliku dziennika, podczas gdy oświadczenia wysłane z puts nie . Jeśli automatyzujesz niektóre skrypty Expect, które nie są uruchamiane na rzeczywistej konsoli, może to mieć duże znaczenie.

4

Główna różnica polega na tym, że puts automatycznie dołącza znak nowej linii, a send_user nie. W związku z tym, puts -nonewline jest bardziej analagiczny do send_user.

send_user także „dziedziczy” niektóre opcje z Spodziewaj się send, takich jak -s i -h (sprawdź stronę podręcznika spodziewać po szczegóły). Zobacz http://99-bottles-of-beer.net/language-expect-249.html dla użycia flagi -h.

Nie mogę mówić o tym, w jaki sposób są one wdrażane na poziomie C.

Powiązane problemy