2012-12-11 6 views
14

Utilizzo Expect da alcuni anni, ma ancora non mi è chiaro se lo send_user è lo stesso di puts. Ogni volta che voglio inviare un messaggio informativo all'utente, mi chiedo quale usare. Dalla pagina man di Expect, sembra che send_user sia lo stesso di puts ma che cosa è utilizzato per lo send_user?Qualsiasi differenza tra "send_user" e "puts" in Expect

+0

Essi devono essere uguali; Aspettarsi che preceda molto il trattamento dell'IO di Tcl stesso ... –

risposta

7

Un'altra differenza che ho appena scoperto tra i due, a parte la cosa nuova riga, è che se si sta utilizzando log_file nello script Expect, le dichiarazioni inviate tramite send_user renderà nel file di log, considerando che le dichiarazioni inviati con puts non lo fanno . Se stai automatizzando alcuni script Expect che non vengono eseguiti sulla tua console, ciò può fare una grande differenza.

4

La differenza principale è che puts aggiunge automaticamente una nuova riga e send_user no. A questo proposito, puts -nonewline è più analogo a send_user.

send_user anche "eredita" alcune opzioni da si aspettano da di send, come ad esempio -s e -h (controllare la pagina man aspettarsi per i dettagli). Vedere http://99-bottles-of-beer.net/language-expect-249.html per l'utilizzo del flag -h.

Non riesco a parlare di come sono implementati a livello C.