user2644549
user2644549

Reputation: 141

perl program not running thorough automated script until it is executed manually first

i am writing code to automate some steps . First it is required to switch user and then run a perl script. Here is my code

if [ -a /try/Test ]
then
su trial -c ". /try/.profile Test"
expect -c 'spawn try1;
send "3\r";
send "1\r";
send "show\r";
interact';
fi

try1 is my perl program which i am trying to call.This script throws this error

 couldn't execute "try1": no such file or directory
 while executing
 "spawn try1"

but once i do this step manually and then run this script then this script runs without nay error.

Upvotes: 1

Views: 80

Answers (1)

Alexander L. Belikoff
Alexander L. Belikoff

Reputation: 5721

I think you've already asked about it (and I did answer, didn't I)?

Here's the basic skeleton (make sure to add error/timeout/unexpected output handling):

# collect password
stty -echo
send_user -- "Password: "
expect_user -re "(.*)\n"
send_user "\n"
stty echo
set pass $expect_out(1,string)

spawn sudo sh;
expect -re ": *$";
send -- "$pass\r"
expect -re "\$ *$";
send "echo SETTING PARAMS\r";
expect -re "\$ *$";
send "echo RUNNING MY COMMAND\r";
expect -re "\$ *$";
interact

Upvotes: 1

Related Questions