Combining Spawn Ids In A Single -input Or -output
It is possible to combine multiple spawn ids in a single -input or -output. This uses the same syntax as the expect command uses to combine multiple spawn ids in a −i flag. Both of the following interact commands have the same result.
interact -input $i -output $o1 -output $o2 interact -input $i -output "$o1 $o2"
The second form is preferred unless the two output spawn ids have different eof actions. For example, in the following command, the action for an end-of-file on o1 is return, while the action for an end-of-file on o2 is "close $i“.
interact -input $i -output $o1 -output $o2 eof {
close $i
}Input spawn ids can be combined similarly. The following command takes the input from i1 and i2 and sends it to o1.
interact -input "$i1 $i2" -output $o1
Note that writing two -input flags in a row with no -output in between causes the first input source to be discarded. This can be quite useful for the same reasons that it is occasionally handy to redirect output to /dev/null in the shell.
Using these shorthands, it is possible to write the interact in kibitz more succinctly:
interact {
-input "$user_spawn_id $userin" -output $process
-input $process -output "$user_spawn_id $userout"
}