Difference between using Here document and Expect in scripts
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 FTP or change password? like
Code:
. myscript.ksh
or
Code:
source myscript.ksh
4) What is the difference in all three behaviors(here,expect and source)?
Tried to resolve these on own but still i am confused.
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... (0 Replies)
Hi
I am getting some errors when i am running the shell script using the following syntax:
>abc.sh
but the same script works fine with the following syntax:
>sh abc.sh
wats the difference in both....please help
thanks in advance. (6 Replies)
What is the difference between calling the sub scripts of below two line.
/home/scripts/devdb.sh
. /home/scripts/devdb.sh
sh /home/scripts/devdb.sh
We are using the suse 2.0 version (4 Replies)
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)
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)
Hi,
I have perl script abc.pl which runs perfectly fine on windows ( execution from cmd).
Now i tried to execute the same perl module on the AIX server after defining the captureoutput.pm and other relevant changes.
But its behaving very weirdly as a portion of the URL which is formed by... (3 Replies)
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)
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)
Hello... and thanks in advance for reading this or offering me any assistance
I'm trying to understand specific differences between the various login scripts... I understand the differences between interactive vs non-interactive and login vs non-login shells... and that's not where my question... (4 Replies)
Discussion started by: bodisha
4 Replies
LEARN ABOUT DEBIAN
test::expect
Test::Expect(3pm) User Contributed Perl Documentation Test::Expect(3pm)NAME
Test::Expect - Automated driving and testing of terminal-based programs
SYNOPSIS
# in a t/*.t file:
use Test::Expect;
use Test::More tests => 13;
expect_run(
command => "perl testme.pl",
prompt => 'testme: ',
quit => 'quit',
);
expect("ping", "pong", "expect");
expect_send("ping", "expect_send");
expect_is("* Hi there, to testme", "expect_is");
expect_like(qr/Hi there, to testme/, "expect_like");
DESCRIPTION
Test::Expect is a module for automated driving and testing of terminal-based programs. It is handy for testing interactive programs which
have a prompt, and is based on the same concepts as the Tcl Expect tool. As in Expect::Simple, the Expect object is made available for
tweaking.
Test::Expect is intended for use in a test script.
SUBROUTINES
expect_run
The expect_run subroutine sets up Test::Expect. You must pass in the interactive program to run, what the prompt of the program is, and
which command quits the program:
expect_run(
command => "perl testme.pl",
prompt => 'testme: ',
quit => 'quit',
);
expect
The expect subroutine is the catch all subroutine. You pass in the command, the expected output of the subroutine and an optional comment.
expect("ping", "pong", "expect");
expect_send
The expect_send subroutine sends a command to the program. You pass in the command and an optional comment.
expect_send("ping", "expect_send");
expect_is
The expect_is subroutine tests the output of the program like Test::More's is. It has an optional comment:
expect_is("* Hi there, to testme", "expect_is");
expect_like
The expect_like subroutine tests the output of the program like Test::More's like. It has an optional comment:
expect_like(qr/Hi there, to testme/, "expect_like");
expect_handle
This returns the Expect object.
expect_quit
Closes the Expect handle.
SEE ALSO
Expect, Expect::Simple.
AUTHOR
Leon Brocard, "<acme@astray.com>"
COPYRIGHT
Copyright (C) 2005, Leon Brocard
This module is free software; you can redistribute it or modify it under the same terms as Perl itself.
perl v5.12.3 2011-06-12 Test::Expect(3pm)