How can i call expect script from a shell script with an arguments and how do i access those arguments in the expect script.
My requirements is as follows. I have a list of ip addresses in my shell variable. I want to telnet to those ip addresses and execute some commands and come out.
How can i write a generic expect script and call this expect scipt with arguments and how can i access this argument in expect script.
I wish I could give you some links. I bought the O'Reilly book many years ago and that's how I learned it, and still use the book as reference when I need it.
If you are just going to run some regular line commands, here's an example to get you started:
Say you have a file with a list of IP address, and want to telnet to each IP address and add a user named user1 and set the user's passwd to "newpassword".
You could pass the IP addresses to the script with a loop like the one I used as an example, or use an array, etc.. but say you use a loop like the example above as root, then your expect script would look like:
Personally, all of my boxes have ssh and keys, so I spawn ssh and have no need to include passwds.
Oh, and remember to use the last of the string that you tell expect to expect: if the line is "Enter new passwd:" , while it will run if you tell expect to expect "Enter", it'll run faster if you use the last of the string, as in "ssword:".
As with ksh, csh, perl, etc, there are many ways to accomplish the same task. The above is just a basic example that you can use as a guide if you only need to run simple commands. It gets a little more complicated when you expect either one string or another , when you use editing commands like sed or awk, when you pass variables to the commands you are executing within expect (as in send "echo $PATH", for example), and so on.
Hi I have two scripts one is Expect and other is shell.
I want to merge Expect code in to Shell script so that i can run it using only one script. Can somebody help me out ?
Order to execute: Run Expect_install.sh first and then when installation completes run runTests.sh shell script.
... (1 Reply)
Shell Scipt: temp.sh
su - <$username>
expect pass.exp
Expect script: pass.exp
#!/usr/bin/expect -f
# Login
#######################
expect "Password: " send "<$password>\r"
it comes up with Password: but doesnt take password passed throguh file. (2 Replies)
Dear friends,
Could you please help me in writing a sample code to connect the remote system (through ssh) using expect in shell script.
Thanks in advance.. :-) (1 Reply)
Hi All,
I have a expect script which is working for single server, but if i am trying to pass value of the variable inside expect, it is not working. Please see below :-
expect -c 'spawn ssh username@ip_address ; expect assword ; send "Password1\n" ; send "uptime \n" ; send "free -m \n" ;... (0 Replies)
Hi there,
I need some help regarding the execution of shell script from expect as the method I am trying is giving me error. I wrote an shell program which takes two arguments to telnet to a device and saves the output in a file. Following is the script.... (0 Replies)
Hi All,
I am using a expect script to run a shell script on remote server, the code is as follows. But the problem is that it executes only first command, and hangs it doesn't run the next commands.
spawn ssh $uid@$host
expect "password:"
send "$password\r"
expect "*\r"
send... (2 Replies)
I am trying to write a shell script that launches an expect script and then use results of the expect script in the rest of the shell script.
The expect script is connecting to a remote host and looking up certian user info like UID and home directory. This part is working
I then want the... (2 Replies)
Hi All,
Has anyone used expect script in a shell script or vice versa. I have a script which would ssh and scp to other machines. I need to use expect script so that user does not have to enter the password everytime ssh/scp command is executed.
The script is as below. I need to pass the... (0 Replies)
This is my shell script which calls an expect file, i am trying to find out server.log file sizes on various servers. But what should be correct way to do that, is there any way i can run a for loop inside the expect file which can take cat <filename> as input. I know for can be used in expect file... (1 Reply)