02-05-2009
expect-string length problom
hi
i am writing an expect script to automate su command, my script goes like this...
#!/usr/local/bin/expect --
set password [lindex $argv 0]
set env_var [lindex $argv 1]
spawn su UNAME [lindex $argv 0]
expect "password:"
send "$password\r"
expect "env"
send "setenv PATHVAR $env_ver\r"
expect "env"
send "echo \$PATHVAR"
expect eof
arguments i am passing is password and $PATH variable. as PATH variable will be very long in length expect is not executing properly, its failing at "send "setenv PATHVAR $env_ver\r"" and not going forward..
any help on this will be appreciated..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
How one can measure the length of a string
but not with the help of awk utility
Can we write shell script for the same ? (2 Replies)
Discussion started by: dilipluhar
2 Replies
2. Shell Programming and Scripting
weh i type in sudo shutdown nowit dose not le me shut down can i override this with out tyoing in -h :confused:
my web site in the makeing is also wantin ga gane code for unix and well as a shut domne hwlp (3 Replies)
Discussion started by: thepicoman
3 Replies
3. UNIX for Dummies Questions & Answers
Hi all,
pls help me in finding the length of the given string,
do we need to write a code seperately or is there any command??
pls help. (3 Replies)
Discussion started by: vasikaran
3 Replies
4. Shell Programming and Scripting
Hi guys, I hope you can help me with my problem.
I have a text file that contains lines like this:
78 ANGELO -809.05
79 ANGELO2 -5,000.06
I need to find all occurences of amounts that are negative and replace them with x's
78 ANGELO xxxxxxx
79... (4 Replies)
Discussion started by: amangeles
4 Replies
5. Shell Programming and Scripting
Hello All,
Plz help me with:
I have a csv file with data separated by ',' and optionally enclosed by "". I want to check each of these values to see if they exceed the specified string length, and if they do I want to cut just that value to the max length allowed and keep the csv format as it... (9 Replies)
Discussion started by: ozzy80
9 Replies
6. Programming
Helo,
I have character array of sixe 128
char filename
now I have one problem that when I enter filename as nothing I got value
as " " ",`\0` " .
when I find this string length ( " ",`\0`) as 1(one).
actually I want to make this length as zero.
so what should I do (10 Replies)
Discussion started by: amitpansuria
10 Replies
7. UNIX for Dummies Questions & Answers
HI
In my script, i am reading the input from the user and want to find the length of the string.
The input may contain leading spaces. Right now, when leading spaces are there, they are not counted.
Kindly help me
My script is like below. I am using the ksh.
#!/usr/bin/ksh
echo... (2 Replies)
Discussion started by: dayamatrix
2 Replies
8. UNIX for Advanced & Expert Users
hi all,
i have the test data file which is . seperated as below and i need sort it
EX data:
5.4.11.3
5.4.2.2
after sort result should look like
5.4.2.2
5.4.11.3
thanks in advance. (2 Replies)
Discussion started by: sudheer157
2 Replies
9. Shell Programming and Scripting
let image that we have string:
QQQQQQQ:ABCDE:FFFFFF:GGGGG
in second field can be 0 or 5 characters
if A exist i need set variable ex: VAR=yes
if B exist i need set variable ex: VAR1=yes
if C exist i need set variable ex: VAR2=yes
etc ...
if second field is empty no variable to set
if... (4 Replies)
Discussion started by: vikus
4 Replies
10. Programming
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
LEARN ABOUT PHP
expect_expectl
EXPECT_EXPECTL(3) 1 EXPECT_EXPECTL(3)
expect_expectl - Waits until the output from a process matches one of the patterns, a specified time period has passed, or anEOFis seen
SYNOPSIS
int expect_expectl (resource $expect, array $cases, [array &$match])
DESCRIPTION
Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen.
If $match is provided, then it is filled with the result of search. The matched string can be found in $match[0]. The match substrings
(according to the parentheses) in the original pattern can be found in $match[1], $match[2], and so on, up to $match[9] (the limitation of
libexpect).
PARAMETERS
o $expect
- An Expect stream, previously opened with expect_popen(3).
o $cases
- An array of expect cases. Each expect case is an indexed array, as described in the following table:
Expect Case Array
+----------+--------------------------+---+---+---+
|Index Key | | | | |
| | | | | |
| | Value Type | | | |
| | | | | |
| | Description | | | |
| | | | | |
| | Is Mandatory | | | |
| | | | | |
| | Default Value | | | |
| | | | | |
+----------+--------------------------+---+---+---+
| 0 | | | | |
| | | | | |
| | string | | | |
| | | | | |
| | pattern, that will be | | | |
| | matched against the out- | | | |
| | put from the stream | | | |
| | | | | |
| | yes | | | |
| | | | | |
| | | | | |
| | T{ 1 | | | |
| | | | | |
| | mixed | | | |
| | | | | |
| | value, that will be | | | |
| | returned by this func- | | | |
| | tion, if the pattern | | | |
| | matches | | | |
| | | | | |
| | yes | | | |
| | | | | |
| | | | | |
| | T{ 2 | | | |
| | | | | |
| | integer | | | |
| | | | | |
| | pattern type, one of: | | | |
| | EXP_GLOB, EXP_EXACT or | | | |
| | EXP_REGEXP | | | |
| | | | | |
| | no | | | |
| | | | | |
| | | | | |
| | EXP_GLOB | | | |
| | | | | |
+----------+--------------------------+---+---+---+
RETURN VALUES
Returns value associated with the pattern that was matched.
On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 0.2.1 | |
| | |
| | Prior to version 0.2.1, in $match parameter a |
| | match string was returned, not an array of match |
| | substrings. |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
expect_expectl(3) example
<?php
// Copies file from remote host:
ini_set("expect.timeout", 30);
$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");
$cases = array(
// array(pattern, value to return if pattern matched)
array("password:", "asked for password"),
array("yes/no)?", "asked for yes/no")
);
while (true) {
switch (expect_expectl($stream, $cases)) {
case "asked for password":
fwrite($stream, "my password
");
break;
case "asked for yes/no":
fwrite($stream, "yes
");
break;
case EXP_TIMEOUT:
case EXP_EOF:
break 2; // break both the switch statement and the while loop
default:
die "Error has occurred!";
}
}
fclose($stream);
?>
SEE ALSO
expect_popen(3).
PHP Documentation Group EXPECT_EXPECTL(3)