2013-03-15 8 views
5

मैंने खोल स्क्रिप्ट:शैल स्क्रिप्ट से एक अपेक्षित स्क्रिप्ट में चर कैसे पास करें? नीचे के रूप में

#!/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 स्क्रिप्ट है जो नीचे scriptshown उम्मीद करने के पारित करने के लिए कोशिश कर रहा:

#!/usr/bin/expect 

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

लेकिन मैं स्क्रिप्ट की अपेक्षा करने के लिए खोल स्क्रिप्ट से गेटवे वैरिएबल पास नहीं कर पा रहा हूं। क्या कोई मुझे बता सकता है कि इसे कैसे प्राप्त किया जाए ?? कृपया ध्यान दें कि मैं केवल विरासत कारणों की वजह से खोल स्क्रिप्ट उपयोग करने की आवश्यकता (tcl स्क्रिप्ट का उपयोग नहीं कर सकते या उम्मीद में स्क्रिप्ट ही सब कुछ नहीं कर सकते हैं)

उत्तर

12

अपने खोल स्क्रिप्ट से:

/mypath/abc $gateway 

अपने उम्मीद स्क्रिप्ट से :

#!/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 
संबंधित मुद्दे