Expect Script Query


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Expect Script Query
# 1  
Old 03-05-2009
Expect Script Query

Hi,
I am writing an expect script, but i have come into a problem ... I have two different answers to one command.
This is fine, but I do not know when I will see which answer - Is there anyway I could put an expect answer into an if statement, like so:
Code:
if { expect == "1" } {
send "working\n"
else
send "bye\n"
}

any ideas how I can get past this - it seems like a simply enough query, but I have searched google and found nothing ... any idea??

thanks ..
# 2  
Old 03-05-2009
I think you're looking for this

Quote:
Pattern-Action Pairs
Expect also allows association between a command and a pattern. The association is made by listing the action (also known as command) immediately after the pattern in the expect command itself. Here is an example of pattern-action pairs:

expect "hi" { send "You said hi\n" }
"hello" { send "Hello yourself\n" }
"bye" { send "Good-bye cruel world\n" }


This command looks for "hi", "hello", and "bye". If any of the three patterns are found, the action immediately following it gets executed. If there is no match and the default timeout expires, expect stops waiting and execution continues with the next command in the script.
This behaves much like if, else

Expect Scripting, Turorial Expect Scripts
# 3  
Old 03-06-2009
Hi Radar,
Thanks for your quick reply - however I have seen this example before and it isn't really what I am looking for.

Depending on my answer, I have different questions to ask ... That is why I was looking for an if statement.

if scenario 1 do this, otherwise do the other ...


Using your example, can I do this:

expect "hi" { send "You said hi\n" }
expect "Yes, I said hi" send ....
"hello" { send "Hello yourself\n" }
expect "Yes, I said hello" send ....
"bye" { send "Good-bye cruel world\n" }
expect "Good luck" send ....


Thanks again for your help
# 4  
Old 05-28-2009
Better off with:

expect {
-re "(.*)hi" { perform action }
-re "(.*)hello" { perform action }
-re "(.*)bye" { perform action }
}

With a -re it will match to anything entered that has "hi" or "hello" or "bye" in it ....
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

SFTP or scp with password in a batch script without using SSH keys and expect script

Dear All, I have a requirement where I have to SFTP or SCP a file in a batch script. Unfortunately, the destination server setup is such that it doesn't allow for shell command line login. So, I am not able to set up SSH keys. My source server is having issues with Expect. So, unable to use... (5 Replies)
Discussion started by: ss112233
5 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. UNIX for Advanced & Expert Users

Unable to run the script on remote machine Using Expect script

Not able to execute the file in remote host using except utility I am automating the SFTP keys setp process: So i created the expect script for controlling the output of shell below is my main code: Code: #!/usr/bin/expect set fd set password close $fd set df set app close $df... (1 Reply)
Discussion started by: Manoj Bajpai
1 Replies

5. 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

6. Shell Programming and Scripting

Shell Script to execute Oracle query taking input from a file to form query

Hi, I need to query Oracle database for 100 users. I have these 100 users in a file. I need a shell script which would read this User file (one user at a time) & query database. For instance: USER CITY --------- ---------- A CITY_A B CITY_B C ... (2 Replies)
Discussion started by: DevendraG
2 Replies

7. Shell Programming and Scripting

Query Oracle tables and return values to shell script that calls the query

Hi, I have a requirement as below which needs to be done viz UNIX shell script (1) I have to connect to an Oracle database (2) Exexute "SELECT field_status from table 1" query on one of the tables. (3) Based on the result that I get from point (2), I have to update another table in the... (6 Replies)
Discussion started by: balaeswari
6 Replies

8. 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

9. UNIX for Dummies Questions & Answers

Expect Script - if/else query

Hi, I am trying to write an expect script that contains an if/else statement based on a result ... but I'm having a bit of trouble. The code below shows my script - it all works fine but when I include the second expect function it ignores it and moves on ... can anyone help with this ...... (1 Reply)
Discussion started by: spikey
1 Replies

10. 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
Login or Register to Ask a Question