04-03-2008
Calling expect scripts from other expect scripts
Hi,
First, let me explain the issue I am trying to solve. We have a lot of expect scripts with the duplicated send/expect commands. So, I'd like to be able to extract the duplicated code into the common scripts that can be used by other scripts.
Below is my test where I am trying to call b.exp from a.exp:
a.exp
#!/usr/bin/env expect
#
set timeout 5
spawn $env(SHELL)
match_max 100000
send -- "./b.exp $spawn_id\r"
expect "bla"
expect eof
exit
b.exp
#!/usr/bin/env expect
#
set spawn_id [lrange $argv 0 0]
send -- "ls -al\r"
expect bla
I am passing the spawn_id into the b.exp script and then sending the "ls" command. The "ls" command does not output anything, so I understand that I can't pass just like that the handle to the process from one expect script to the other.
Could you suggest any other approach to solve my original issue or maybe there's actually a way to talk to the same process from the distinct expect scripts?
Thanks,
Seva
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I call a EXPECT script from my perl script with machine IP and a FIle. The script logins to the machine and exports the value. The values to be exported or stored in a file.
I have close to 10 machines and I have created 10 files and pass the corresponding files in command line, Now I could like... (4 Replies)
Discussion started by: ramkriz
4 Replies
2. Shell Programming and Scripting
Hi
I would like to know how to handle my script that expects an input when calling the script and the user doesn't enter anything, I need to re-direct to my helpfile.
Bascically here is my script:
#!/bin/bash
csvdir="/var/local/dsx/csv/general"
csvfile="$csvdir/$csvfile"... (3 Replies)
Discussion started by: ladyAnne
3 Replies
3. Shell Programming and Scripting
hi all,
i have this script that accepts passwords automatically and its working in one host only. my problem is how will i use it if i need it to run in more than one host/server let say by using "for loop statement"
working :
spawn bundle linux -r hostname checkpath... (2 Replies)
Discussion started by: linuxgeek
2 Replies
4. UNIX for Dummies Questions & Answers
Hi,
I am confused between using here document and using expect for writing interactive shell scripts(like changing password ,FTP or doing su).
My questions are :
1)Why here documents cant change password from shell script.
2)Why we need to use expect for same?
3) Can Sourcing a script can do... (2 Replies)
Discussion started by: kailash19
2 Replies
5. Shell Programming and Scripting
Hi all, I'm wondering if you could give me some advice. I am new to scripting and am getting rather frustrated that i can get my script to call another script if certain criteria is met, via command line, but I cannot get the same script to work thru the cron jobs.
My first script monitors... (8 Replies)
Discussion started by: echoes
8 Replies
6. Programming
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
7. Shell Programming and Scripting
Hello all,
I've been trying to design a script which will help me transfer files from one unix box to another. Following is the code:
#!/usr/local/bin/expect
spawn /usr/bin/scp ms_cp5_daily.ksh userid@cat:/prod/env/ms.txt
set pass xxxxxx
expect {
password: {send "$pass\r";... (4 Replies)
Discussion started by: sethmj
4 Replies
8. Programming
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
Dear all,
I am working on script which call other shell scripts in a loop but problem is from second script am not able to come out.
Here is the snippet:-
#!/bin/bash
HSFILE=/root/Test/Components.txt
LOGFile=/opt/domain/AdminDomain/application/logs... (3 Replies)
Discussion started by: sharsour
3 Replies
10. Shell Programming and Scripting
I have a bash script on server that runs fine when run interactively and writes stderr output to a file.
However, when invoked through a 'expect' script run on Mac OS my laptop which does ssh to the server : generates the expected file, but file has no content. I suspect the stderr is getting... (1 Reply)
Discussion started by: sdudc
1 Replies
frexp(3M) Mathematical Library Functions frexp(3M)
NAME
frexp, frexpf, frexpl - extract mantissa and exponent from a floating-point number
SYNOPSIS
cc [ flag... ] file... -lm [ library... ]
#include <math.h>
double frexp(double num, int *exp);
float frexpf(float num, int *exp);
long double frexpl(long double num, int *exp);
DESCRIPTION
These functions break a floating-point number into a normalized fraction and an integral power of 2. They store the integer exponent in the
int object pointed to by exp.
RETURN VALUES
For finite arguments, these functions return the value x, such that x is a double with magnitude in the interval [1/2, 1) or 0, and num
equals x times 2 raised to the power *exp.
If num is NaN, NaN is returned and the value of *exp is unspecified.
If num is +- 0, +- 0 is returned and the value of *exp is 0.
If num is +-Inf, num is returned and the value of *exp is unspecified.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
isnan(3M), ldexp(3M), modf(3M), attributes(5), standards(5)
SunOS 5.10 16 Aug 2004 frexp(3M)