<br><br><div class="gmail_quote">On Sat, Apr 9, 2011 at 11:59 AM, john heasley <span dir="ltr">&lt;<a href="mailto:heas@shrubbery.net">heas@shrubbery.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Fri, Apr 08, 2011 at 02:25:07PM -0600, Brian Talley:<br>
<div><div></div><div class="h5">&gt; I&#39;m creating a custom login script for a Crescendo load balancer device.  I<br>
&gt; can log in to the device and get to interactive mode ok using the script,<br>
&gt; but when I try to run commands with something like:<br>
&gt;<br>
&gt; crescendologin -d -t 30 -c&quot;show running&quot; host<br>
&gt;<br>
&gt; it appears that expect is trying to match on every character with output<br>
&gt; like:<br>
&gt;<br>
&gt; ...<br>
&gt; send: sending &quot;show running\r&quot; to { exp6 }<br>
&gt;<br>
&gt; expect: does &quot;&quot; (spawn_id exp6) match regular expression &quot;^[^\n\r]*root&gt; &quot;?<br>
&gt; no<br>
&gt; &quot;^[^\n\r ]*&gt;&gt;.*root&gt; &quot;? no<br>
&gt; &quot;[\n\r]+&quot;? no<br>
&gt;<br>
&gt; expect: does &quot;s&quot; (spawn_id exp6) match regular expression &quot;^[^\n\r]*root&gt; &quot;?<br>
&gt; no<br>
&gt; &quot;^[^\n\r ]*&gt;&gt;.*root&gt; &quot;? no<br>
&gt; &quot;[\n\r]+&quot;? no<br>
&gt; expect: timed out<br>
&gt;<br>
&gt; Error: TIMEOUT reached<br>
&gt;<br>
&gt; I feel like I&#39;m missing something obvious.  The pertinent section of<br>
&gt; run_commands looks like:<br>
&gt;<br>
&gt;     for {set i 0} {$i &lt; $num_commands} { incr i} {<br>
&gt;         send -- &quot;[subst -nocommands [lindex $commands $i]]\r&quot;<br>
&gt;         expect {<br>
&gt;                 -re &quot;^\[^\n\r]*$reprompt&quot;      { exp_continue }<br>
&gt;                 -re &quot;^\[^\n\r *]*$reprompt&quot;     {}<br>
&gt;                 -re &quot;\[\n\r]&quot;                   { exp_continue }<br>
&gt;         }<br>
&gt;     }<br>
&gt;<br>
&gt; And the actual prompt is &quot;root&gt; &quot;<br>
<br>
</div></div>try ktrace (or truss or strace) on the process.  it could be that the<br>
device is slow, the expect (tcl) is reading one char at a time, the<br>
tty is in a weird mode; as just a few guesses.<br>
<br>
it is not uncommon for single chars to be read sometimes.  the key is<br>
create matches that dont consume the single chars; cause it to read<br>
more and concatenate the input into complete lines.<br>
<br>
</blockquote></div><div><br></div>After some trial and error I was able to get this to work by using<div><span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; "><pre>set send_human {.1 .3 1 .05 2}</pre>
</span>
<div>Thanks,</div></div><div>Brian</div>