I my shell script, I am trying to remove password prompt for scp
command (as given in https://stackoverflow.com/questions/459182/using-expect-to-pass-a-password-to-ssh/459225#459225) and this is what I have so far :-
#!/usr/bin/expect
spawn scp $DESTINATION_PATH/exam.tar $SSH_CREDENTIALS':/'$PROJECT_INSTALLATION_PATH
expect "password:"
send $sshPassword"\n";
interact
On running the script, I am getting errors
spawn: command not found
send: command not found
interact: command not found
I was also getting error expect: command not found
also, then I realised the path to expect
was not correct and expect
was not installed at all. So, I did yum install expect
, corrected the path and the error was gone. But not able to remove the other 3 errors still.
Best Answer
You're invoking the script badly.
If you say:
then the #! line is ignored and bash takes the file as though it were bash instructions. But this is not a bash script, it's an expect script.
The #! line is only ever interpreted by the kernel, when given the script as a command to run in its own right.
Either give the script execute permission, so that you can just invoke
./scriptname
, or use theexpect
command to start the script.