Issues with Expect


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Issues with Expect
# 1  
Old 09-08-2009
Issues with Expect

Here is a snippet of code that work for me:

Code:
expect  "abc" {send_log "abc found" } \
            "def"  {send_log "def found" } \
            "123" {send_log "123 found}

however the following does not and according to the book "Exploring Expect" it should be equivalent:

Code:
expect  { "abc" {send_log "abc found" } 
               "def"  {send_log "def found" } 
               "123" {send_log "123 found}
             }

I'm using expect version 5.43.0 and the date on the book is 1996.

Another issue I have that I can not understand why is:

in response to "ls -l file",
Code:
"expect "drwx" {send_log "file found"}

the log file ends up with "file found", however,
Code:
"expect "^drwx" {send_log "file found"}

the log file ends up with nada!

Again the book says it should work with the anchor but not for me. To ensure that the d really is the first character in the out put from ls I did "ls -l file | od -C" and the dump shows the d as first with, no leading unprintable characters much less any printable ones!

These may seem like trivial issues but I need to make the processing more complex and understanding what is going on would really help.


Thanks...twk

Last edited by radoulov; 09-09-2009 at 04:01 AM.. Reason: please use code tags
# 2  
Old 09-10-2009
Why do you have so many quotes, is it because you are trying to write the code in-line in a shell script? This may cause some unexpected behaviour... at the very least you should probably use single quotes to surround the expect code. Probably best would be to implement the expect script in a separate file with a shebang line such as #!/usr/bin/expect -f.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issues with Expect Script

Hi, does the expect script tries to match for everyline on the screen irrespective of the prompts??? spawn ./Inst.sh expect "path? (Y/N)" send "Y\r" expect "folder path" send "$DIR1\r" expect "path? (Y/N)" send "Y\r" expect "folder path2" send "$DIR2\r" After the installer... (11 Replies)
Discussion started by: premseth
11 Replies

2. Programming

Expect script returning string following a found expect.

I'm fairly new to scripting so this might not be possible. I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version: #show version ... (0 Replies)
Discussion started by: IBGaryA
0 Replies

3. Programming

Calling another expect script inside an expect script

I have an expect script called remote that I want to call from inside my expect script called sudoers.push, here is the code that is causing me issues: set REMOTE "/root/scripts/remote" ... log_user 1 send_user "Executing remote script as $user...\n" send_user "Command to execute is: $REMOTE... (1 Reply)
Discussion started by: brettski
1 Replies

4. Programming

Calling expect script inside another expect

Hi, Am very new to expect scripting.. Can You please suggest me how to call an expect script inside another expect script.. I tried with spawn /usr/bin/ksh send "expect main.exp\r" expect $root_prompt and spawn /usr/bin/ksh send "main.exp\r" expect $root_prompt Both... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies

5. Shell Programming and Scripting

Expect - Comparison of expect value and loop selection

Hello All, I am trying to automate an installation process using expect and sh script. My problem is that during the installation process the expected value can change according to the situation. For Example if this is a first time installation then at step 3 I'll get "Do you want to accept... (0 Replies)
Discussion started by: alokrm
0 Replies

6. Shell Programming and Scripting

Expect issues

Hi all, I'm new with expect. I'm developing a quick script to check my sudo access on 100 servers. So using !/bin/usr/expect doesn't work. So decided to use it as : expect -c "set timeout -1;\ spawn ssh $IPADDR -l $USERID ;\ match_max 100000;\ expect { -re... (0 Replies)
Discussion started by: EmersonOrci
0 Replies

7. Shell Programming and Scripting

Need help with Expect script for Cisco IPS Sensors, Expect sleep and quoting

This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Discussion started by: genewolfe
1 Replies

8. Shell Programming and Scripting

Expect: Beginner help with spawn and expect

Hello hello, did a quick search and didn't turn up anything helpful. I've got a book I'm sure has the answers, but I don't think I'll have time to finish it before this all has to work, so here goes~ if this isn't a good place to post and someone could direct me to another forum I'd appreciate... (1 Reply)
Discussion started by: Vryali
1 Replies

9. Shell Programming and Scripting

strange expect script behavior, or am i misunderstanding expect scripting?

Hello to all...this is my first post (so please go easy). :) I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies

10. Shell Programming and Scripting

Expect and auto expect command

I need to run a remote application(GUI) in a client.i.e on running a script in the client machine i should get the GUI application which is running in the server by providing password through the script.Will expect or autoexpect command suit for this scenario? could anyone help me by posting some... (0 Replies)
Discussion started by: arun_v
0 Replies
Login or Register to Ask a Question