私は以下のようにシェルスクリプトを作成しました:
#!/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
上記のスクリプトでは、ユーザー入力の選択からゲートウェイをフェッチし、以下に示すスクリプトを期待するabc.shスクリプトに渡そうとしています。
#!/usr/bin/expect
set timeout 3
spawn ssh "james@$gateway"
expect "password:"
send "TSfdsHhtfs\r";
interact
しかし、シェルスクリプトからゲートウェイ変数を渡してスクリプトを期待することはできません。誰かがこれを達成する方法を教えてもらえますか?レガシーの理由でのみシェルスクリプトを使用する必要があることに注意してください(tclスクリプトを使用できないか、expectスクリプト自体ですべてを実行することはできません)