I've shell script as below:
#!/bin/bash
echo "Select the Gateway Server:"
echo " 1. Gateway 1"
echo " 2. Gateway 2"
echo " 3. Gateway 3"
read gatewayHost
case $gatewayHost in
1) gateway="abc.com" ;;
2) gateway="pqr.com" ;;
3) gateway="xyz.com" ;;
*) echo "Invalid choice" ;;
esac
/mypath/abc
In above script, I'm fetching gateway from user input selection & trying to pass to my abc.sh script which is expect scriptshown below:
#!/usr/bin/expect
set timeout 3
spawn ssh "james@$gateway"
expect "password:"
send "TSfdsHhtfs\r";
interact
But I'm not able to pass gateway variable from shell script to expect script. Can any one tell me how to achieve this?? Please note that I need to use shell script only due to legacy reasons (Cannot use tcl script or can't do everything in expect script itself)
From your shell script:
/mypath/abc $gateway
From your expect script:
#!/usr/bin/expect
set gateway [lindex $argv 0]; # Grab the first command line parameter
set timeout 3
spawn ssh "james@$gateway"
expect "password:"
send "TSfdsHhtfs\r";
interact