2017-02-17 6 views
-1

Ich habe eine .sh-Datei und eine .exp-Datei und beide haben Quelle aus anderen Textdatei, die ihre Variablenwerte enthält. Wenn ich die .sh-Datei ausführe, wird die .exp-Datei ausgeführt, aber es sieht so aus, als könnte sie den Wert aus der Quelldatei nicht richtig lesen, wenn sie in diese Zeile gelangt. Ich habe mich gefragt, ob ich es richtig gemacht habe.Quelle aus einer Textdatei in einer Expect-Datei funktioniert nicht

Die .sh Datei

#!/bin/bash 
source ../common/labinfo/qcow_var.txt 

cd $WORKSPACE/qcow_vnf 

echo -e "** Starting qcow_vnf Installation **\n** Checking the connectivity  to Host-1...**\n" 
../common/isup_addr.sh "$HOSTIP_1" 1 
if [ $? -ne 0 ] 
then 
exit 1 
fi 

echo -e "** Checking the connectivity to Host-2...**\n" 
../common/isup_addr.sh "$HOSTIP_2" 1 
if [ $? -ne 0 ] 
then 
exit 1 
fi 

create_vm.exp "$HOSTIP_1" "$HOSTUSER" "$HOSTPASS" "$VMNAME_1" 

Die .exp-Datei

#!/opt/tools/unsupported/expect-5.39/bin/expect 
source ../common/labinfo/qcow_var.txt 

set HOST [ lindex $argv 0 ] 
set USER [ lindex $argv 1 ] 
set PASSWORD [ lindex $argv 2 ] 
set VMNAME [ lindex $argv 3 ] 

echo -e "** Creation of $VMNAME on $HOST begins... **\n" 
spawn ssh -l $USER $HOST 
expect_after eof {exit 0} 
set timeout 10 

expect "(yes/no)?" { send "yes\r" } 
expect "password:" { send "$PASSWORD\r" } 

expect "~]#" { send "date\r" } 
set timeout 1200 
......(etc) 

Und die .txt-Datei

HOSTIP_1=172.28.152.240 
HOSTIP_2=172.28.152.241 
HOSTUSER="root" 
....(and the rest of the variables) 
+0

expect ist eine Erweiterung von Tcl, und Tcl verwendet nicht die 'variable = Wert'-Syntax. Sie können nicht dieselbe Konfigurationsdatei für beide Sprachen (Shell und Expect) verwenden, ohne mehr Code zu analysieren, um die Shell-Syntax in Tcl zu übersetzen. –

Antwort

0

ich herausgefunden habe, nachdem ich meine Frage gestellt. Ich bin ziemlich neu dazu. Das Problem ist, dass die Quelle nicht so funktioniert mit erwarten, dass ich auch Echo in verwendet habe, das ist auch falsch. Ich habe meine Probleme behoben und es funktioniert jetzt gut.

Verwandte Themen