2013-03-15 29 views
5

Ben ettik kabuk komut dosyası:Bir kabuk komut dosyasından değişken bir betiğe değişkenler nasıl iletilir? aşağıda

#!/usr/bin/expect 

set timeout 3 
spawn ssh "[email protected]$gateway" 
expect "password:" 
send "TSfdsHhtfs\r"; 
interact 
: Yukarıdaki komut dosyasında

#!/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 

, aşağıda scriptshown bekliyoruz benim abc.sh komut dosyasına geçiş yapmaya çalışan kullanıcı giriş seçimine & gelen geçidini getirilirken ediyorum

Ancak, kabuk komut dosyasından ağ geçidi değişkeni komut satırına geçemiyorum. Herhangi biri bana bunun nasıl yapılacağını söyleyebilir mi? sizin bekliyoruz komut itibaren

/mypath/abc $gateway 

: Sadece nedeniyle eski nedenlerle kabuk programı kullanmak gerekir (tcl senaryoyu kullanılamaz veya komut dosyası kendisi bekliyoruz her şeyi yapamaz) sizin kabuk itibaren

cevap

12

unutmayınız :

#!/usr/bin/expect 

set gateway [lindex $argv 0]; # Grab the first command line parameter 

set timeout 3 
spawn ssh "[email protected]$gateway" 
expect "password:" 
send "TSfdsHhtfs\r"; 
interact