Exercises

  1. On page 146 of Advanced UNIX Programming (Prentice Hall), Marc Rochkind describes how deadlock can occur when using pipes for bidirectional communication. Why does this not apply to Expect?

  2. Modify the firstline script (page 178) to make it check that the spawn command succeeds and that the program is successfully executed. Upon failure, send any diagnostics to the standard error and return a nonzero status.

  3. On page 292, there are two commands in the string passed to /bin/sh. Simplify the string.

  4. Write a script that starts two xterms, each of which use a separate shell (as usual). Make the script create a transcript of both xterms in a single file. Provide a parameter that switches from logging by line to logging by individual character.

  5. It is possible to write a better version of ptyfix (page 302) using the diagnostic output from Expect. Modify the script so that when Expect reports that a pty is hung, the new version finds the process that is responsible and kills it.

Get Exploring Expect now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.