<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/expect-lite/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/expect-lite/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/expect-lite/bugs/</id><updated>2012-05-04T04:37:22Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>Crash using 'default' shell prompt setting</title><link href="https://sourceforge.net/p/expect-lite/bugs/2/" rel="alternate"/><published>2012-05-04T04:37:22Z</published><updated>2012-05-04T04:37:22Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.neta70d2391342333a4a29bada754b295bbe8342865</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;On Ubuntu 12.04:&lt;/p&gt;
&lt;p&gt;apt-cache policy expect-lite&lt;br /&gt;
expect-lite:&lt;br /&gt;
Installed: 4.2.0-0ubuntu1&lt;br /&gt;
Candidate: 4.2.0-0ubuntu1&lt;/p&gt;
&lt;p&gt;I use expect-lite scripts from cron tasks to query the line quality of ADSL modems using telnet sessions. I've had a script running successfully for external Speedtouch 610 for a long time without problems.&lt;/p&gt;
&lt;p&gt;Recently I deployed a server with an internal PCI-ADSL2+ modem based on the Infineon Danube - this is a MIPS SoC that presents to the host PC as a standard Ethernet interface and runs embedded Linux 2.4.31 with telnetd and BusyBox.&lt;/p&gt;
&lt;p&gt;I created an expect-lite script for it but see a crash caused by expect-lite incorrectly trying to set a shell prompt:&lt;/p&gt;
&lt;p&gt;---- danube-pci-adsl.elt -----&lt;br /&gt;
#!/usr/bin/expect-lite -f&lt;br /&gt;
# connect to Danube PCI ADSL Modem and get connection quality&lt;br /&gt;
@30&lt;br /&gt;
*EOLS LF&lt;br /&gt;
*INTERACT&lt;br /&gt;
---- EOF -----&lt;/p&gt;
&lt;p&gt;The result is:&lt;/p&gt;
&lt;p&gt;$ EL_CONNECT_METHOD=telnet EL_CONNECT_USER=root EL_CONNECT_PASS=12345678 EL_REMOTE_HOST=modem ./danube-pci-adsl.elt&lt;br /&gt;
spawn /usr/bin/telnet modem&lt;br /&gt;
Trying 10.254.249.1...&lt;br /&gt;
Connected to modem.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
Danube login: root&lt;br /&gt;
Password:&lt;/p&gt;
&lt;p&gt;Setting Expect Timeout to: 30&lt;/p&gt;
&lt;p&gt;expect-lite directive: *EOLS LF&lt;/p&gt;
&lt;p&gt;expect-lite directive: *INTERACT&lt;/p&gt;
&lt;p&gt;Press '+++' to end interact session &amp;amp; return to script&lt;/p&gt;
&lt;p&gt;export PS1='$ '&lt;br /&gt;
set prompt = "$ "&lt;/p&gt;
&lt;p&gt;BusyBox v1.00 (2008.08.04-09:35+0000) Built-in shell (msh)&lt;br /&gt;
Enter 'help' for a list of built-in commands.&lt;/p&gt;
&lt;p&gt;#&lt;br /&gt;
# export PS1='$ '&lt;br /&gt;
$ set prompt = "$ "&lt;br /&gt;
getcell(0)&lt;br /&gt;
Connection closed by foreign host.&lt;br /&gt;
CONNECT ERROR: Unable to connect to remote_host: modem&lt;br /&gt;
send: spawn id exp6 not open&lt;/p&gt;
&lt;p&gt;The problem is that sending&lt;/p&gt;
&lt;p&gt;set prompt = "$ "&lt;/p&gt;
&lt;p&gt;isn't safe for the msh shell implemented by BusyBox. A workaround is to force setting of an alternate shell prompt even though it won't be understood by msh.&lt;/p&gt;
&lt;p&gt;expect-lite should not try to set a prompt for a shell it doesn't recognise.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>dynamic variables only support "$ " prompt</title><link href="https://sourceforge.net/p/expect-lite/bugs/1/" rel="alternate"/><published>2007-11-27T16:50:41Z</published><updated>2007-11-27T16:50:41Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net185fd5432fb25cbfa067bd2a5652a9560323d41d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;A "% " prompt will not match  dynamic variables.  I think only "$ " will work.  ("$" - with no space - will not find the prompt at all. &lt;/p&gt;
&lt;p&gt;A workaround - put at the top of elt file:&lt;/p&gt;
&lt;p&gt;&amp;gt;PS1="$ ";echo;&lt;br /&gt;
&amp;lt;\$&lt;/p&gt;
&lt;p&gt;Details:&lt;/p&gt;
&lt;p&gt;cat test.elt               &lt;br /&gt;
; ==== Ping localhost and report result ====&lt;/p&gt;
&lt;p&gt;@5&lt;br /&gt;
&amp;gt;echo a b c&lt;br /&gt;
##&amp;lt;a b c&lt;br /&gt;
+$packet_rx=a b (c)&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt;echo "Packets received are:$packet_rx"&lt;/p&gt;
&lt;p&gt;This works: &lt;/p&gt;
&lt;p&gt;PS1="$ "&lt;br /&gt;
$ &lt;br /&gt;
$ &lt;br /&gt;
$ expect-lite r=none c=test.elt&lt;br /&gt;
Warning: Remote Host=none, using Localhost&lt;br /&gt;
spawn bash&lt;/p&gt;
&lt;p&gt;$ &lt;br /&gt;
$ &lt;br /&gt;
$ bash&lt;br /&gt;
$ &lt;br /&gt;
$ &lt;/p&gt;
&lt;p&gt;==== Ping localhost and report result ====&lt;/p&gt;
&lt;p&gt;$ &lt;/p&gt;
&lt;p&gt;Setting Expect Timeout to: 5 &lt;/p&gt;
&lt;p&gt;$ &lt;br /&gt;
$ echo a b c&lt;br /&gt;
a b c&lt;br /&gt;
$ &lt;br /&gt;
Assigned Var:packet_rx=c&lt;/p&gt;
&lt;p&gt;$ &lt;br /&gt;
$ echo "Packets received are:c"&lt;br /&gt;
Packets received are:c&lt;br /&gt;
$ &lt;/p&gt;
&lt;p&gt;##Overall Result: PASS &lt;/p&gt;
&lt;p&gt;Not work:&lt;/p&gt;
&lt;p&gt;$ PS1="$"&lt;br /&gt;
$expect-lite r=none c=test.elt&lt;br /&gt;
Warning: Remote Host=none, using Localhost&lt;br /&gt;
spawn bash&lt;/p&gt;
&lt;p&gt;$&lt;br /&gt;
$&lt;/p&gt;
&lt;p&gt;ERROR: Unable to detect prompt, connection appears to be dead.&lt;br /&gt;
$&lt;br /&gt;
$&lt;br /&gt;
$PS1="$ "&lt;br /&gt;
$ expect-lite r=none c=test.elt&lt;br /&gt;
Warning: Remote Host=none, using Localhost&lt;br /&gt;
spawn bash&lt;/p&gt;
&lt;p&gt;$ &lt;br /&gt;
$ &lt;br /&gt;
$ bash&lt;br /&gt;
$ &lt;br /&gt;
$ &lt;br /&gt;
$ &lt;br /&gt;
$ &lt;br /&gt;
==== Ping localhost and report result ====&lt;/p&gt;
&lt;p&gt;$ &lt;/p&gt;
&lt;p&gt;Setting Expect Timeout to: 5 &lt;/p&gt;
&lt;p&gt;echo a b c&lt;br /&gt;
a b c&lt;br /&gt;
$ &lt;br /&gt;
Assigned Var:packet_rx=c&lt;/p&gt;
&lt;p&gt;$ &lt;br /&gt;
$ &lt;/p&gt;
&lt;p&gt;##Overall Result: PASS &lt;/p&gt;
&lt;p&gt;Not work:&lt;/p&gt;
&lt;p&gt;$ PS1="% "&lt;br /&gt;
% expect-lite r=none c=test.elt&lt;br /&gt;
Warning: Remote Host=none, using Localhost&lt;br /&gt;
spawn bash&lt;/p&gt;
&lt;p&gt;% &lt;br /&gt;
% &lt;br /&gt;
% bash&lt;br /&gt;
% &lt;/p&gt;
&lt;p&gt;==== Ping localhost and report result ====&lt;/p&gt;
&lt;p&gt;% &lt;/p&gt;
&lt;p&gt;Setting Expect Timeout to: 5 &lt;/p&gt;
&lt;p&gt;% &lt;br /&gt;
% &lt;br /&gt;
% echo a b c&lt;br /&gt;
a b c&lt;br /&gt;
% Warning: Expect-lite: Var Capture Timed Out! Recommend lengthening timeout, current timeout is: 5 secs&lt;/p&gt;
&lt;p&gt;% echo "Packets received are:__NO_STRING_CAPTURED__"&lt;br /&gt;
Packets received are:__NO_STRING_CAPTURED__&lt;br /&gt;
% &lt;/p&gt;
&lt;p&gt;##Overall Result: PASS &lt;/p&gt;
&lt;p&gt;% &lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;-Herb&lt;/p&gt;
&lt;p&gt;herbert_marti@yahoo.com&lt;/p&gt;
&lt;p&gt;PS: I think this expect-lite has a lot of potential for  bash scripting.  Thanks!&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>