Sponsored Content
Top Forums Shell Programming and Scripting Expect Script Newbie for IF/THEN Post 303002052 by ocbroadband on Wednesday 16th of August 2017 05:24:33 PM
Old 08-16-2017
Expect Script Newbie for IF/THEN

Hello,

1st time visitor, and just learning some probably very basic scripting here, but any help would be appreciated.

GOAL: Login to a device on the network via CLI using a mix of bash/expect, and take into account different potential responses depending on the status of the device.

Example output from the device..

Code:
Copyright (c) 2013 ADVA Optical Networking SE. All rights reserved.

user@x.x.x.x's password: 

********************************************************************************

Warning Notice: xxxx

********************************************************************************

Do you wish to continue [Y|N]--> 

xxxxxxxx-->

So in the above example, the only portion that 'might' appear is the line "Do you wish to continue [Y|N]-->". I'm attempting to have expect recognize that and provide a response of 'y', and then continue on to the rest of the expect statements. Below are the 2 scripts I am using together which is a bash script calling the expect script.

BASH SCRIPT
Code:
source ~/scripts/config
for ip in $(cat ./IPs); do
./00_Configure_SNMP $ip $EUSER $EPASS >> 00_Results/ip_${ip}
done

EXPECT SCRIPT
Code:
#!/usr/bin/expect -f
set IPaddress [lindex $argv 0]
set Username [lindex $argv 1]
set Password [lindex $argv 2]
set timeout 3
spawn ssh $IPaddress
expect "password:"
send "$Password\r"
expect {
	"\[Y|N\]-->" {
		send "y\r"
	}
}
expect ">"
send "configure snmp\r"
expect ">"
send "add community xxxxxx readwrite\r"
expect ">"
send "home\r"
expect ">"
send "configure system\r"
expect ">"
send "ftp enable\r"
expect ">"
send "home\r"
expect ">"
send "logout\r"

Whats happening currently is the script gets to the point after the password is entered, and bypasses the section for the entering of the y if wanting to continue. I'm not quite sure if my formatting is correct or ?

Thank you,

Lyle
 

10 More Discussions You Might Find Interesting

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

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

3. Shell Programming and Scripting

Expect script help (newbie)

Im a UNIX newbie so please excuse the little knowledge I have, Im trying to learn. I created a script that logs into multiple servers, gets data and saves it on the local server. The script looks like this.. #!/opt/local/bin/expect # Set username/password to initially login to switch.... (4 Replies)
Discussion started by: jay11789
4 Replies

4. Shell Programming and Scripting

Expect script help needed- script failing if router unavailable

Hey all. Sometimes I'm tasked to change some router configs for the entire network (over 3,000 Cisco routers). Most of the time its a global config parameter so its done with a loop and an IP list as its the same configuration change for all routers. This is working OK. However, sometimes an... (3 Replies)
Discussion started by: mrkz1974
3 Replies

5. Shell Programming and Scripting

please help newbie with script

hi!i am musician and have very little knowledge about shell here's my script #!/bin/bash for (( ; ; )) do wget some wikipedia article here --output-document=- > /dev/audio done so it downloads random wikipedia page (forum doesnt let me post link so i wrote some wikipedia article here... (6 Replies)
Discussion started by: karlhungus
6 Replies

6. Shell Programming and Scripting

Shell script newbie, what is problem with my script?

Hello, Ubuntu server 11.10 can anybody help what is problem with my shell script? #!/bin/bash #script to find out currently logged on user is root or not. if ] then echo "You are super" else echo "You are awesome!" fi When I run script, I get following output ./uid: line 3: I... (4 Replies)
Discussion started by: kaustubh
4 Replies

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

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

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

10. 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
opx25(1M)																 opx25(1M)

NAME
opx25 - execute HALGOL programs SYNOPSIS
scriptname] char] file-descriptor] file-descriptor] string] DESCRIPTION
The commands, including are targeted for removal from HP-UX; see the below. HALGOL is a simple language for communicating with devices such as modems and X.25 PADs. It has simple statements similar to and that are described below. Options recognizes the following options: Causes to read script as the input program. If is not specified, reads the standard input as a script. Causes to use char as the first character in the input stream instead of actually reading it from the input descriptor. This is useful sometimes when the program that calls is forced to read a character but then cannot ``unread'' it. Causes to use number for the output file descriptor (i.e., the device to use for The default is 1. Causes to use 'number' for the input file descriptor (ie, the device to use for 'expect'). The default is 0. Causes to save this string for use when is encountered in a command. Causes to turn on debugging mode. Causes to turn on verbose mode. An script file contains lines of the following types: (empty) Empty lines are ignored. Lines beginning with a slash are ignored (comments) ID ID denotes a label, and is limited to alphanumerics or string must be surrounded by double quotes. The text is sent to the device specified by the option. Non-printable charac- ters are represented as in C; i.e., as DDD, where DDD is the octal ascii character code. in a send string is the string that followed the option. Send a break "character" to the device. Here number is how many seconds to wait before giving up. 0 means wait forever, but this is not advised. Whenever string appears in the input within the time allotted, the command succeeds. Thus, it is not necessary to specify the entire string. For example, if you know that the PAD will send several lines followed by an prompt, you could just use as the string. The program etc.) is run with the args specified. Do not use quotes here. Also, the program is invoked directly (using so wild cards, redirection, etc. are not possible. If the most recent expect or run encountered an error, go to the label ID. Similar to but does not fork. Similar to but goes to standard error instead of to the device. Sets the program in debug mode. It echoes each line to as well as giving the result of each expect and run. This can be useful for writing new scripts. The command disables this feature. Sends subsequent incoming characters to This can be used in the file as a security measure, because part of the incoming data stream contains the number of the caller. There is a similar feature in it writes the time and the login name into the same logfile. The command disables this feature. Similar to but better in some cases because it sends only digits to the log file, and not other characters. The command dis- ables this feature. Sets a global timeout value. Each expect uses time in the timeout reservoir; when this time is gone, the program gives up (exit 1). If this com- mand is not used, there is no global timeout. Also, the global timeout can be reset any time, and a value of 0 turns it off. Exits with this value. 0 is success; anything else is failure. To perform a rudimentary test of configuration files, run by hand, using the option followed by the name of the script file. then sends to standard output and expects from standard input; thus you can type the input, observe the output, and use the command to see messages. See the file for a good example of HALGOL programming. WARNINGS
Use of commands, including is discouraged because they are targeted for removal from HP-UX. Use ftp(1) or rcp(1) instead. AUTHOR
was developed by HP. SEE ALSO
getx25(1), uucp(1). TO BE OBSOLETED opx25(1M)
All times are GMT -4. The time now is 10:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy