-1
私は.shファイルと.expファイルを持っていますが、両方とも変数値を持つ他のテキストファイルのソースを持っています。 .shファイルを実行すると、.expファイルが実行されますが、その行に到達すると、ソースファイルから値を正しく読み取ることができないように見えます。私はそれを正しかったかどうか疑問に思っていた。期待値ファイルのテキストファイルのソースが機能しません
.SHファイル
#!/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"
.EXPファイル
#!/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)
そして、私は私の質問を掲示した後、私が見つけた
HOSTIP_1=172.28.152.240
HOSTIP_2=172.28.152.241
HOSTUSER="root"
....(and the rest of the variables)
expectはTclの拡張であり、Tclは 'variable = value'構文を使用しません。シェル構文をTclに変換するコードを解析せずに、両方の言語(シェルと期待)に同じ設定ファイルを使用することはできません。 –